@omegagrid/core 0.10.2 → 0.10.4
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/common/actions.d.ts +16 -0
- package/dist/common/actions.d.ts.map +1 -0
- package/dist/common/actions.js +14 -0
- package/dist/common/actions.js.map +1 -0
- package/dist/common/colors.d.ts +39 -0
- package/dist/common/colors.d.ts.map +1 -0
- package/dist/common/colors.js +59 -0
- package/dist/common/colors.js.map +1 -0
- package/dist/common/csv.d.ts +23 -0
- package/dist/common/csv.d.ts.map +1 -0
- package/dist/common/csv.js +93 -0
- package/dist/common/csv.js.map +1 -0
- package/dist/common/dates.d.ts +32 -0
- package/dist/common/dates.d.ts.map +1 -0
- package/dist/common/dates.js +172 -0
- package/dist/common/dates.js.map +1 -0
- package/dist/common/device.d.ts +2 -0
- package/dist/common/device.d.ts.map +1 -0
- package/dist/common/device.js +13 -0
- package/dist/common/device.js.map +1 -0
- package/dist/common/dom.d.ts +90 -0
- package/dist/common/dom.d.ts.map +1 -0
- package/dist/common/dom.js +308 -0
- package/dist/common/dom.js.map +1 -0
- package/dist/common/events.d.ts +15 -0
- package/dist/common/events.d.ts.map +1 -0
- package/dist/common/events.js +33 -0
- package/dist/common/events.js.map +1 -0
- package/dist/common/html.d.ts +3 -0
- package/dist/common/html.d.ts.map +1 -0
- package/dist/common/html.js +25 -0
- package/dist/common/html.js.map +1 -0
- package/dist/common/index.d.ts +19 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +19 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/linkedList.d.ts +24 -0
- package/dist/common/linkedList.d.ts.map +1 -0
- package/dist/common/linkedList.js +65 -0
- package/dist/common/linkedList.js.map +1 -0
- package/dist/common/loaders.d.ts +17 -0
- package/dist/common/loaders.d.ts.map +1 -0
- package/dist/common/loaders.js +54 -0
- package/dist/common/loaders.js.map +1 -0
- package/dist/common/logger.d.ts +25 -0
- package/dist/common/logger.d.ts.map +1 -0
- package/dist/common/logger.js +57 -0
- package/dist/common/logger.js.map +1 -0
- package/dist/common/matrix.d.ts +6 -0
- package/dist/common/matrix.d.ts.map +1 -0
- package/dist/common/matrix.js +17 -0
- package/dist/common/matrix.js.map +1 -0
- package/dist/common/numbers.d.ts +26 -0
- package/dist/common/numbers.d.ts.map +1 -0
- package/dist/common/numbers.js +239 -0
- package/dist/common/numbers.js.map +1 -0
- package/dist/common/options.d.ts +17 -0
- package/dist/common/options.d.ts.map +1 -0
- package/dist/common/options.js +29 -0
- package/dist/common/options.js.map +1 -0
- package/dist/common/paper.d.ts +8 -0
- package/dist/common/paper.d.ts.map +1 -0
- package/dist/common/paper.js +17 -0
- package/dist/common/paper.js.map +1 -0
- package/dist/common/shortcutManager.d.ts +17 -0
- package/dist/common/shortcutManager.d.ts.map +1 -0
- package/dist/common/shortcutManager.js +49 -0
- package/dist/common/shortcutManager.js.map +1 -0
- package/dist/common/tree.d.ts +87 -0
- package/dist/common/tree.d.ts.map +1 -0
- package/dist/common/tree.js +204 -0
- package/dist/common/tree.js.map +1 -0
- package/dist/common/utils.d.ts +30 -0
- package/dist/common/utils.d.ts.map +1 -0
- package/dist/common/utils.js +136 -0
- package/dist/common/utils.js.map +1 -0
- package/dist/constants.d.ts +48 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +24 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/model/adapter.d.ts +8 -0
- package/dist/model/adapter.d.ts.map +1 -0
- package/dist/model/adapter.js +13 -0
- package/dist/model/adapter.js.map +1 -0
- package/dist/model/component.d.ts +19 -0
- package/dist/model/component.d.ts.map +1 -0
- package/dist/model/component.js +84 -0
- package/dist/model/component.js.map +1 -0
- package/dist/model/componentSlice.d.ts +8 -0
- package/dist/model/componentSlice.d.ts.map +1 -0
- package/dist/model/componentSlice.js +10 -0
- package/dist/model/componentSlice.js.map +1 -0
- package/dist/model/componentStore.d.ts +12 -0
- package/dist/model/componentStore.d.ts.map +1 -0
- package/dist/model/componentStore.js +26 -0
- package/dist/model/componentStore.js.map +1 -0
- package/dist/model/index.d.ts +6 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +6 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/plugins.d.ts +13 -0
- package/dist/model/plugins.d.ts.map +1 -0
- package/dist/model/plugins.js +27 -0
- package/dist/model/plugins.js.map +1 -0
- package/dist/themes/definitions/tmDark.d.ts +4 -0
- package/dist/themes/definitions/tmDark.d.ts.map +1 -0
- package/dist/themes/definitions/tmDark.js +83 -0
- package/dist/themes/definitions/tmDark.js.map +1 -0
- package/dist/themes/definitions/tmLight.d.ts +4 -0
- package/dist/themes/definitions/tmLight.d.ts.map +1 -0
- package/dist/themes/definitions/tmLight.js +83 -0
- package/dist/themes/definitions/tmLight.js.map +1 -0
- package/dist/themes/helpers.d.ts +7 -0
- package/dist/themes/helpers.d.ts.map +1 -0
- package/dist/themes/helpers.js +34 -0
- package/dist/themes/helpers.js.map +1 -0
- package/dist/themes/index.d.ts +18 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +48 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/mixins.d.ts +10 -0
- package/dist/themes/mixins.d.ts.map +1 -0
- package/dist/themes/mixins.js +39 -0
- package/dist/themes/mixins.js.map +1 -0
- package/dist/themes/transformations.d.ts +9 -0
- package/dist/themes/transformations.d.ts.map +1 -0
- package/dist/themes/transformations.js +48 -0
- package/dist/themes/transformations.js.map +1 -0
- package/dist/types.d.ts +130 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/accordion.d.ts +16 -0
- package/dist/ui/accordion.d.ts.map +1 -0
- package/dist/ui/accordion.js +209 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/alert.d.ts +15 -0
- package/dist/ui/alert.d.ts.map +1 -0
- package/dist/ui/alert.js +101 -0
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/baseElement.d.ts +7 -0
- package/dist/ui/baseElement.d.ts.map +1 -0
- package/dist/ui/baseElement.js +10 -0
- package/dist/ui/baseElement.js.map +1 -0
- package/dist/ui/button.d.ts +21 -0
- package/dist/ui/button.d.ts.map +1 -0
- package/dist/ui/button.js +100 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/button.style.d.ts +2 -0
- package/dist/ui/button.style.d.ts.map +1 -0
- package/dist/ui/button.style.js +60 -0
- package/dist/ui/button.style.js.map +1 -0
- package/dist/ui/checkbox.d.ts +14 -0
- package/dist/ui/checkbox.d.ts.map +1 -0
- package/dist/ui/checkbox.js +47 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/close.d.ts +6 -0
- package/dist/ui/close.d.ts.map +1 -0
- package/dist/ui/close.js +33 -0
- package/dist/ui/close.js.map +1 -0
- package/dist/ui/colorpicker.d.ts +24 -0
- package/dist/ui/colorpicker.d.ts.map +1 -0
- package/dist/ui/colorpicker.js +228 -0
- package/dist/ui/colorpicker.js.map +1 -0
- package/dist/ui/container.d.ts +39 -0
- package/dist/ui/container.d.ts.map +1 -0
- package/dist/ui/container.js +313 -0
- package/dist/ui/container.js.map +1 -0
- package/dist/ui/dropdown.d.ts +48 -0
- package/dist/ui/dropdown.d.ts.map +1 -0
- package/dist/ui/dropdown.js +300 -0
- package/dist/ui/dropdown.js.map +1 -0
- package/dist/ui/dropdownColorPicker.d.ts +12 -0
- package/dist/ui/dropdownColorPicker.d.ts.map +1 -0
- package/dist/ui/dropdownColorPicker.js +60 -0
- package/dist/ui/dropdownColorPicker.js.map +1 -0
- package/dist/ui/dropdownList.d.ts +8 -0
- package/dist/ui/dropdownList.d.ts.map +1 -0
- package/dist/ui/dropdownList.js +48 -0
- package/dist/ui/dropdownList.js.map +1 -0
- package/dist/ui/dropdownMenu.d.ts +11 -0
- package/dist/ui/dropdownMenu.d.ts.map +1 -0
- package/dist/ui/dropdownMenu.js +61 -0
- package/dist/ui/dropdownMenu.js.map +1 -0
- package/dist/ui/expander.d.ts +28 -0
- package/dist/ui/expander.d.ts.map +1 -0
- package/dist/ui/expander.js +144 -0
- package/dist/ui/expander.js.map +1 -0
- package/dist/ui/fileInput.d.ts +24 -0
- package/dist/ui/fileInput.d.ts.map +1 -0
- package/dist/ui/fileInput.js +130 -0
- package/dist/ui/fileInput.js.map +1 -0
- package/dist/ui/fileInput.style.d.ts +2 -0
- package/dist/ui/fileInput.style.d.ts.map +1 -0
- package/dist/ui/fileInput.style.js +73 -0
- package/dist/ui/fileInput.style.js.map +1 -0
- package/dist/ui/floatingWindow.d.ts +19 -0
- package/dist/ui/floatingWindow.d.ts.map +1 -0
- package/dist/ui/floatingWindow.js +87 -0
- package/dist/ui/floatingWindow.js.map +1 -0
- package/dist/ui/icon.d.ts +46 -0
- package/dist/ui/icon.d.ts.map +1 -0
- package/dist/ui/icon.js +189 -0
- package/dist/ui/icon.js.map +1 -0
- package/dist/ui/icon.style.d.ts +2 -0
- package/dist/ui/icon.style.d.ts.map +1 -0
- package/dist/ui/icon.style.js +556 -0
- package/dist/ui/icon.style.js.map +1 -0
- package/dist/ui/images.d.ts +2 -0
- package/dist/ui/images.d.ts.map +1 -0
- package/dist/ui/images.js +14 -0
- package/dist/ui/images.js.map +1 -0
- package/dist/ui/index.d.ts +32 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +32 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/input.d.ts +12 -0
- package/dist/ui/input.d.ts.map +1 -0
- package/dist/ui/input.js +45 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/input.style.d.ts +2 -0
- package/dist/ui/input.style.d.ts.map +1 -0
- package/dist/ui/input.style.js +36 -0
- package/dist/ui/input.style.js.map +1 -0
- package/dist/ui/label.d.ts +16 -0
- package/dist/ui/label.d.ts.map +1 -0
- package/dist/ui/label.js +90 -0
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/list.d.ts +87 -0
- package/dist/ui/list.d.ts.map +1 -0
- package/dist/ui/list.js +427 -0
- package/dist/ui/list.js.map +1 -0
- package/dist/ui/list.style.d.ts +2 -0
- package/dist/ui/list.style.d.ts.map +1 -0
- package/dist/ui/list.style.js +35 -0
- package/dist/ui/list.style.js.map +1 -0
- package/dist/ui/loader.d.ts +6 -0
- package/dist/ui/loader.d.ts.map +1 -0
- package/dist/ui/loader.js +25 -0
- package/dist/ui/loader.js.map +1 -0
- package/dist/ui/menu.d.ts +41 -0
- package/dist/ui/menu.d.ts.map +1 -0
- package/dist/ui/menu.js +154 -0
- package/dist/ui/menu.js.map +1 -0
- package/dist/ui/menu.style.d.ts +3 -0
- package/dist/ui/menu.style.d.ts.map +1 -0
- package/dist/ui/menu.style.js +50 -0
- package/dist/ui/menu.style.js.map +1 -0
- package/dist/ui/numericInput.d.ts +37 -0
- package/dist/ui/numericInput.d.ts.map +1 -0
- package/dist/ui/numericInput.js +175 -0
- package/dist/ui/numericInput.js.map +1 -0
- package/dist/ui/numericInput.style.d.ts +2 -0
- package/dist/ui/numericInput.style.d.ts.map +1 -0
- package/dist/ui/numericInput.style.js +29 -0
- package/dist/ui/numericInput.style.js.map +1 -0
- package/dist/ui/overlay.d.ts +17 -0
- package/dist/ui/overlay.d.ts.map +1 -0
- package/dist/ui/overlay.js +87 -0
- package/dist/ui/overlay.js.map +1 -0
- package/dist/ui/overlay.style.d.ts +2 -0
- package/dist/ui/overlay.style.d.ts.map +1 -0
- package/dist/ui/overlay.style.js +46 -0
- package/dist/ui/overlay.style.js.map +1 -0
- package/dist/ui/panel.d.ts +25 -0
- package/dist/ui/panel.d.ts.map +1 -0
- package/dist/ui/panel.js +151 -0
- package/dist/ui/panel.js.map +1 -0
- package/dist/ui/panel.style.d.ts +2 -0
- package/dist/ui/panel.style.d.ts.map +1 -0
- package/dist/ui/panel.style.js +73 -0
- package/dist/ui/panel.style.js.map +1 -0
- package/dist/ui/sizer.d.ts +53 -0
- package/dist/ui/sizer.d.ts.map +1 -0
- package/dist/ui/sizer.js +203 -0
- package/dist/ui/sizer.js.map +1 -0
- package/dist/ui/slider.d.ts +52 -0
- package/dist/ui/slider.d.ts.map +1 -0
- package/dist/ui/slider.js +213 -0
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/slider.style.d.ts +2 -0
- package/dist/ui/slider.style.d.ts.map +1 -0
- package/dist/ui/slider.style.js +61 -0
- package/dist/ui/slider.style.js.map +1 -0
- package/dist/ui/sortableList.d.ts +39 -0
- package/dist/ui/sortableList.d.ts.map +1 -0
- package/dist/ui/sortableList.js +167 -0
- package/dist/ui/sortableList.js.map +1 -0
- package/dist/ui/splitContainer.d.ts +52 -0
- package/dist/ui/splitContainer.d.ts.map +1 -0
- package/dist/ui/splitContainer.js +252 -0
- package/dist/ui/splitContainer.js.map +1 -0
- package/dist/ui/splitContainer.style.d.ts +2 -0
- package/dist/ui/splitContainer.style.d.ts.map +1 -0
- package/dist/ui/splitContainer.style.js +62 -0
- package/dist/ui/splitContainer.style.js.map +1 -0
- package/dist/ui/switch.d.ts +22 -0
- package/dist/ui/switch.d.ts.map +1 -0
- package/dist/ui/switch.js +83 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/switch.style.d.ts +2 -0
- package/dist/ui/switch.style.d.ts.map +1 -0
- package/dist/ui/switch.style.js +149 -0
- package/dist/ui/switch.style.js.map +1 -0
- package/dist/ui/tooltip.d.ts +24 -0
- package/dist/ui/tooltip.d.ts.map +1 -0
- package/dist/ui/tooltip.js +143 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/ui/tooltip.style.d.ts +2 -0
- package/dist/ui/tooltip.style.d.ts.map +1 -0
- package/dist/ui/tooltip.style.js +112 -0
- package/dist/ui/tooltip.style.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const style = css `
|
|
3
|
+
:host {
|
|
4
|
+
display: none;
|
|
5
|
+
position: absolute;
|
|
6
|
+
z-index: 150;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
#inner {
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
position: relative;
|
|
14
|
+
width: 100%;
|
|
15
|
+
height: 100%;
|
|
16
|
+
background-color: var(--og-background-color);
|
|
17
|
+
opacity: 0.8;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
:host([striped]) {
|
|
21
|
+
background-image: repeating-linear-gradient(45deg, var(--og-accent-color) 0, var(--og-accent-color) 2px, transparent 0, transparent 50%);
|
|
22
|
+
background-size: 10px 10px;
|
|
23
|
+
background-color: transparent;
|
|
24
|
+
opacity: 1;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
#text {
|
|
28
|
+
font-size: 3em;
|
|
29
|
+
text-align: center;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
#text span {
|
|
33
|
+
background-color: var(--og-background-color);
|
|
34
|
+
padding: 20px;
|
|
35
|
+
opacity: 0.8;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
#loader {
|
|
39
|
+
text-align: center;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#loader img {
|
|
43
|
+
width: 50px;
|
|
44
|
+
}
|
|
45
|
+
`;
|
|
46
|
+
//# sourceMappingURL=overlay.style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.style.js","sourceRoot":"","sources":["../../src/ui/overlay.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CvB,CAAC","sourcesContent":["import { css } from 'lit';\nexport const style = css`\n\t:host {\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\tz-index: 150;\n\t}\n\n\t#inner {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tbackground-color: var(--og-background-color);\n\t\topacity: 0.8;\n\t}\n\n\t:host([striped]) {\n\t\tbackground-image: repeating-linear-gradient(45deg, var(--og-accent-color) 0, var(--og-accent-color) 2px, transparent 0, transparent 50%);\n\t\tbackground-size: 10px 10px;\n\t\tbackground-color: transparent;\n\t\topacity: 1;\n\t}\n\n\t#text {\n\t\tfont-size: 3em;\n\t\ttext-align: center;\n\t}\n\n\t#text span {\n\t\tbackground-color: var(--og-background-color);\n\t\tpadding: 20px;\n\t\topacity: 0.8;\n\t}\n\n\t#loader {\n\t\ttext-align: center;\n\t}\n\n\t#loader img {\n\t\twidth: 50px;\n\t}\n`;"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { HorizontalPosition } from '../types';
|
|
3
|
+
import { IconSpec } from './icon';
|
|
4
|
+
export declare class Panel extends LitElement {
|
|
5
|
+
static styles: import("lit").CSSResult[];
|
|
6
|
+
text: string;
|
|
7
|
+
icon: string | IconSpec;
|
|
8
|
+
scrollable: boolean;
|
|
9
|
+
closable: boolean;
|
|
10
|
+
collapsible: boolean;
|
|
11
|
+
collapsed: boolean;
|
|
12
|
+
arrowPosition: HorizontalPosition;
|
|
13
|
+
bodySlot: HTMLSlotElement;
|
|
14
|
+
body: HTMLDivElement;
|
|
15
|
+
header: HTMLDivElement;
|
|
16
|
+
private contentHeight;
|
|
17
|
+
private collapsing;
|
|
18
|
+
private interval;
|
|
19
|
+
_onHeaderClick: () => void;
|
|
20
|
+
animateCollapse(): void;
|
|
21
|
+
firstUpdated(): void;
|
|
22
|
+
render: () => import("lit-html").TemplateResult<1>;
|
|
23
|
+
layout(): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/ui/panel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAGvC,OAAO,EAAE,kBAAkB,EAAU,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAKlC,qBACa,KAAM,SAAQ,UAAU;IAEpC,MAAM,CAAC,MAAM,4BAAW;IAGxB,IAAI,EAAE,MAAM,CAAC;IAGb,IAAI,EAAE,MAAM,GAAC,QAAQ,CAAC;IAGtB,UAAU,UAAS;IAGnB,QAAQ,UAAS;IAGjB,WAAW,UAAS;IAGpB,SAAS,UAAS;IAGlB,aAAa,EAAE,kBAAkB,CAAW;IAG5C,QAAQ,EAAE,eAAe,CAAC;IAG1B,IAAI,EAAE,cAAc,CAAC;IAGrB,MAAM,EAAE,cAAc,CAAC;IAGvB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IAEzB,cAAc,aAOb;IAED,eAAe;IAkCf,YAAY;IAKZ,MAAM,6CA0BJ;IAEF,MAAM;CAkBN"}
|
package/dist/ui/panel.js
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
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 { dom } from '../common';
|
|
8
|
+
import { LitElement, html } from 'lit';
|
|
9
|
+
import { customElement, property, query } from 'lit/decorators.js';
|
|
10
|
+
import { style } from './panel.style';
|
|
11
|
+
const ANIMATION_INTERVAL = 10;
|
|
12
|
+
const ANIMATION_LENGTH = 100;
|
|
13
|
+
let Panel = class Panel extends LitElement {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.scrollable = false;
|
|
17
|
+
this.closable = false;
|
|
18
|
+
this.collapsible = false;
|
|
19
|
+
this.collapsed = false;
|
|
20
|
+
this.arrowPosition = 'right';
|
|
21
|
+
this.collapsing = false;
|
|
22
|
+
this._onHeaderClick = () => {
|
|
23
|
+
if (this.collapsing)
|
|
24
|
+
return;
|
|
25
|
+
if (!this.collapsible)
|
|
26
|
+
return;
|
|
27
|
+
if (!this.collapsed)
|
|
28
|
+
this.contentHeight = this.body.offsetHeight;
|
|
29
|
+
this.collapsed = !this.collapsed;
|
|
30
|
+
this.collapsing = true;
|
|
31
|
+
this.animateCollapse();
|
|
32
|
+
};
|
|
33
|
+
this.render = () => html `
|
|
34
|
+
<div id="header" @click="${this._onHeaderClick}">
|
|
35
|
+
${this.collapsible && this.arrowPosition == 'left' ? html `
|
|
36
|
+
<og-icon id="chevron-left" .icon="chevron-${this.collapsed ? 'right' : 'down'}" fixedWidth></og-icon>
|
|
37
|
+
` : ``}
|
|
38
|
+
|
|
39
|
+
${this.icon ? html `<og-icon id="icon" .icon="${this.icon}" fixedWidth></og-icon>` : ``}
|
|
40
|
+
|
|
41
|
+
<div id="title">
|
|
42
|
+
<slot name="header"></slot>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
${this.collapsible && this.arrowPosition == 'right' ? html `
|
|
46
|
+
<og-icon id="chevron-right" .icon="chevron-${this.collapsed ? 'right' : 'down'}" fixedWidth></og-icon>
|
|
47
|
+
` : ``}
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<div id="body">
|
|
51
|
+
${this.scrollable ? html `
|
|
52
|
+
<og-container>
|
|
53
|
+
<slot name="body" slot="content"></slot>
|
|
54
|
+
</og-container>
|
|
55
|
+
` : html `
|
|
56
|
+
<slot name="body"></slot>
|
|
57
|
+
`}
|
|
58
|
+
</div>
|
|
59
|
+
`;
|
|
60
|
+
}
|
|
61
|
+
animateCollapse() {
|
|
62
|
+
const step = this.contentHeight / (ANIMATION_LENGTH / ANIMATION_INTERVAL);
|
|
63
|
+
let height = this.collapsed ? this.contentHeight : 0;
|
|
64
|
+
const resizeEvent = new Event('resize', { bubbles: true, composed: true });
|
|
65
|
+
if (!this.collapsed) {
|
|
66
|
+
dom.setMaxSize(this.body, { h: 0 });
|
|
67
|
+
dom.showElement(this.body);
|
|
68
|
+
}
|
|
69
|
+
this.dispatchEvent(new Event('resizestart', { bubbles: true, composed: true }));
|
|
70
|
+
this.interval = window.setInterval(this.collapsed ? () => {
|
|
71
|
+
height = Math.max(0, height - step);
|
|
72
|
+
dom.setMaxSize(this.body, { h: height });
|
|
73
|
+
if (height == 0) {
|
|
74
|
+
dom.hideElement(this.body);
|
|
75
|
+
dom.setMaxSize(this.body, { h: 'none' });
|
|
76
|
+
window.clearInterval(this.interval);
|
|
77
|
+
this.collapsing = false;
|
|
78
|
+
this.dispatchEvent(new Event('resizestop', { bubbles: true, composed: true }));
|
|
79
|
+
}
|
|
80
|
+
this.dispatchEvent(resizeEvent);
|
|
81
|
+
} : () => {
|
|
82
|
+
height = Math.min(height + step, this.contentHeight);
|
|
83
|
+
dom.setMaxSize(this.body, { h: height });
|
|
84
|
+
if (height >= this.contentHeight) {
|
|
85
|
+
dom.setMaxSize(this.body, { h: 'none' });
|
|
86
|
+
window.clearInterval(this.interval);
|
|
87
|
+
this.collapsing = false;
|
|
88
|
+
this.dispatchEvent(new Event('resizestop', { bubbles: true, composed: true }));
|
|
89
|
+
}
|
|
90
|
+
this.dispatchEvent(resizeEvent);
|
|
91
|
+
}, ANIMATION_INTERVAL);
|
|
92
|
+
}
|
|
93
|
+
firstUpdated() {
|
|
94
|
+
this.contentHeight = this.body.offsetHeight;
|
|
95
|
+
if (this.collapsed)
|
|
96
|
+
dom.hideElement(this.body);
|
|
97
|
+
}
|
|
98
|
+
layout() {
|
|
99
|
+
const element = this.body?.firstElementChild;
|
|
100
|
+
if (element instanceof HTMLSlotElement) {
|
|
101
|
+
element.assignedElements().forEach((elm) => {
|
|
102
|
+
if (elm instanceof HTMLElement && elm.layout) {
|
|
103
|
+
elm.layout();
|
|
104
|
+
}
|
|
105
|
+
else if (elm instanceof HTMLElement && elm.firstElementChild
|
|
106
|
+
&& elm.firstElementChild.layout) {
|
|
107
|
+
elm.firstElementChild.layout();
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
else if (element instanceof HTMLElement && element.layout) {
|
|
112
|
+
element.layout();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
Panel.styles = [style];
|
|
117
|
+
__decorate([
|
|
118
|
+
property({ type: String })
|
|
119
|
+
], Panel.prototype, "text", void 0);
|
|
120
|
+
__decorate([
|
|
121
|
+
property({ type: String })
|
|
122
|
+
], Panel.prototype, "icon", void 0);
|
|
123
|
+
__decorate([
|
|
124
|
+
property({ type: Boolean })
|
|
125
|
+
], Panel.prototype, "scrollable", void 0);
|
|
126
|
+
__decorate([
|
|
127
|
+
property({ type: Boolean })
|
|
128
|
+
], Panel.prototype, "closable", void 0);
|
|
129
|
+
__decorate([
|
|
130
|
+
property({ type: Boolean, reflect: true })
|
|
131
|
+
], Panel.prototype, "collapsible", void 0);
|
|
132
|
+
__decorate([
|
|
133
|
+
property({ type: Boolean, reflect: true })
|
|
134
|
+
], Panel.prototype, "collapsed", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
property({ type: String })
|
|
137
|
+
], Panel.prototype, "arrowPosition", void 0);
|
|
138
|
+
__decorate([
|
|
139
|
+
query('slot[name="body"]')
|
|
140
|
+
], Panel.prototype, "bodySlot", void 0);
|
|
141
|
+
__decorate([
|
|
142
|
+
query('#body')
|
|
143
|
+
], Panel.prototype, "body", void 0);
|
|
144
|
+
__decorate([
|
|
145
|
+
query('#header')
|
|
146
|
+
], Panel.prototype, "header", void 0);
|
|
147
|
+
Panel = __decorate([
|
|
148
|
+
customElement(`og-panel`)
|
|
149
|
+
], Panel);
|
|
150
|
+
export { Panel };
|
|
151
|
+
//# sourceMappingURL=panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.js","sourceRoot":"","sources":["../../src/ui/panel.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom } from '../common';\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { style } from './panel.style';\nimport { HorizontalPosition, Layout } from '../types';\nimport { IconSpec } from './icon';\n\nconst ANIMATION_INTERVAL = 10;\nconst ANIMATION_LENGTH = 100;\n\n@customElement(`og-panel`)\nexport class Panel extends LitElement {\n\n\tstatic styles = [style];\n\n\t@property({type: String})\n\ttext: string;\n\n\t@property({type: String})\n\ticon: string|IconSpec;\n\n\t@property({type: Boolean})\n\tscrollable = false;\n\n\t@property({type: Boolean})\n\tclosable = false;\n\n\t@property({type: Boolean, reflect: true})\n\tcollapsible = false;\n\n\t@property({type: Boolean, reflect: true})\n\tcollapsed = false;\n\n\t@property({type: String})\n\tarrowPosition: HorizontalPosition = 'right';\n\n\t@query('slot[name=\"body\"]')\n\tbodySlot: HTMLSlotElement;\n\n\t@query('#body')\n\tbody: HTMLDivElement;\n\n\t@query('#header')\n\theader: HTMLDivElement;\n\t\n\n\tprivate contentHeight: number;\n\tprivate collapsing = false;\n\tprivate interval: number;\n\t\n\t_onHeaderClick = () => {\n\t\tif (this.collapsing) return;\n\t\tif (!this.collapsible) return;\n\t\tif (!this.collapsed) this.contentHeight = this.body.offsetHeight;\n\t\tthis.collapsed = !this.collapsed;\n\t\tthis.collapsing = true;\n\t\tthis.animateCollapse();\n\t}\n\n\tanimateCollapse() {\n\t\tconst step = this.contentHeight / (ANIMATION_LENGTH / ANIMATION_INTERVAL);\n\t\tlet height = this.collapsed ? this.contentHeight : 0;\n\t\t\n\t\tconst resizeEvent = new Event('resize', {bubbles: true, composed: true});\n\t\tif (!this.collapsed) {\n\t\t\tdom.setMaxSize(this.body, {h: 0});\n\t\t\tdom.showElement(this.body);\n\t\t}\n\t\tthis.dispatchEvent(new Event('resizestart', {bubbles: true, composed: true}));\n\t\tthis.interval = window.setInterval(this.collapsed ? () => {\n\t\t\theight = Math.max(0, height - step);\n\t\t\tdom.setMaxSize(this.body, {h: height});\n\t\t\tif (height == 0) {\n\t\t\t\tdom.hideElement(this.body);\n\t\t\t\tdom.setMaxSize(this.body, {h: 'none'});\n\t\t\t\twindow.clearInterval(this.interval);\n\t\t\t\tthis.collapsing = false;\n\t\t\t\tthis.dispatchEvent(new Event('resizestop', {bubbles: true, composed: true}));\n\t\t\t}\n\t\t\tthis.dispatchEvent(resizeEvent);\n\t\t} : () => {\n\t\t\theight = Math.min(height + step, this.contentHeight);\n\t\t\tdom.setMaxSize(this.body, {h: height});\n\t\t\tif (height >= this.contentHeight) {\n\t\t\t\tdom.setMaxSize(this.body, {h: 'none'});\n\t\t\t\twindow.clearInterval(this.interval);\n\t\t\t\tthis.collapsing = false;\n\t\t\t\tthis.dispatchEvent(new Event('resizestop', {bubbles: true, composed: true}));\n\t\t\t}\n\t\t\tthis.dispatchEvent(resizeEvent);\n\t\t}, ANIMATION_INTERVAL);\n\t}\n\n\tfirstUpdated() {\n\t\tthis.contentHeight = this.body.offsetHeight;\n\t\tif (this.collapsed) dom.hideElement(this.body);\n\t}\n\n\trender = () => html`\n\t\t<div id=\"header\" @click=\"${this._onHeaderClick}\">\n\t\t\t${this.collapsible && this.arrowPosition == 'left' ? html`\n\t\t\t\t<og-icon id=\"chevron-left\" .icon=\"chevron-${this.collapsed ? 'right' : 'down'}\" fixedWidth></og-icon>\n\t\t\t`: ``}\n\t\t\t\n\t\t\t${this.icon ? html`<og-icon id=\"icon\" .icon=\"${this.icon}\" fixedWidth></og-icon>` : ``}\n\t\t\t\n\t\t\t<div id=\"title\">\n\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t</div>\n\n\t\t\t${this.collapsible && this.arrowPosition == 'right' ? html`\n\t\t\t\t<og-icon id=\"chevron-right\" .icon=\"chevron-${this.collapsed ? 'right' : 'down'}\" fixedWidth></og-icon>\n\t\t\t`: ``}\n\t\t</div>\n\n\t\t<div id=\"body\">\n\t\t\t${this.scrollable ? html`\n\t\t\t\t<og-container>\n\t\t\t\t\t<slot name=\"body\" slot=\"content\"></slot>\n\t\t\t\t</og-container>\n\t\t\t`: html`\n\t\t\t\t<slot name=\"body\"></slot>\n\t\t\t`}\n\t\t</div>\n\t`;\n\n\tlayout() {\n\t\tconst element = this.body?.firstElementChild as HTMLElement & Layout;\n\t\tif (element instanceof HTMLSlotElement) {\n\t\t\telement.assignedElements().forEach((elm: HTMLElement & Layout) => {\n\t\t\t\tif (elm instanceof HTMLElement && elm.layout) {\n\t\t\t\t\t(elm as Layout).layout();\n\t\t\t\t} else if (\n\t\t\t\t\telm instanceof HTMLElement && elm.firstElementChild \n\t\t\t\t\t&& (elm.firstElementChild as HTMLElement & Layout).layout\n\t\t\t\t) {\n\t\t\t\t\t(elm.firstElementChild as HTMLElement & Layout).layout();\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (element instanceof HTMLElement && element.layout) {\n\t\t\telement.layout();\n\t\t}\n\t}\n\t\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.style.d.ts","sourceRoot":"","sources":["../../src/ui/panel.style.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,KAAK,yBAqEjB,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
// TODO - remove top/bottom padding from header
|
|
3
|
+
export const style = css `
|
|
4
|
+
* {
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
:host {
|
|
9
|
+
font-size: var(--og-font-size);
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
border: 1px solid var(--og-border-color);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
#header {
|
|
16
|
+
flex: 0;
|
|
17
|
+
color: var(--og-text-color);
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: row;
|
|
20
|
+
border-bottom: 1px solid var(--og-border-color);
|
|
21
|
+
align-items: center;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
#title {
|
|
25
|
+
flex: 1;
|
|
26
|
+
margin-left: 5px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
#title > * {
|
|
30
|
+
line-height: 25px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
og-icon {
|
|
34
|
+
vertical-align: middle;
|
|
35
|
+
height: 12px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
#icon, #chevron-left {
|
|
39
|
+
margin-left: 5px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#chevron-right {
|
|
43
|
+
margin-right: 5px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
#header > og-icon {
|
|
47
|
+
flex: 0;
|
|
48
|
+
text-align: center;
|
|
49
|
+
min-width: 12px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
:host([collapsible]) #header {
|
|
53
|
+
cursor: pointer;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
:host([collapsible]) #header:hover {
|
|
57
|
+
background-color: var(--og-background-color-2);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
#body {
|
|
61
|
+
flex: 1;
|
|
62
|
+
border-top-width: 0;
|
|
63
|
+
overflow: hidden;
|
|
64
|
+
max-height: 100%;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
og-container {
|
|
68
|
+
width: 100%;
|
|
69
|
+
height: 100%;
|
|
70
|
+
overflow: hidden;
|
|
71
|
+
}
|
|
72
|
+
`;
|
|
73
|
+
//# sourceMappingURL=panel.style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.style.js","sourceRoot":"","sources":["../../src/ui/panel.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,GAAG,EAAE,MAAM,KAAK,CAAC;AAE3B,+CAA+C;AAE/C,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEvB,CAAC","sourcesContent":["import { css } from 'lit';\n\n// TODO - remove top/bottom padding from header\n\nexport const style = css`\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\t:host {\n\t\tfont-size: var(--og-font-size);\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tborder: 1px solid var(--og-border-color);\n\t}\n\n\t#header {\n\t\tflex: 0;\n\t\tcolor: var(--og-text-color);\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tborder-bottom: 1px solid var(--og-border-color);\n\t\talign-items: center;\n\t}\n\n\t#title {\n\t\tflex: 1;\n\t\tmargin-left: 5px;\n\t}\n\n\t#title > * {\n\t\tline-height: 25px;\n\t}\n\n\tog-icon {\n\t\tvertical-align: middle;\n\t\theight: 12px;\n\t}\n\t\n\t#icon, #chevron-left {\n\t\tmargin-left: 5px;\n\t}\n\n\t#chevron-right {\n\t\tmargin-right: 5px;\n\t}\n\n\t#header > og-icon {\n\t\tflex: 0;\n\t\ttext-align: center;\n\t\tmin-width: 12px;\n\t}\n\n\t:host([collapsible]) #header {\n\t\tcursor: pointer;\n\t}\n\n\t:host([collapsible]) #header:hover {\n\t\tbackground-color: var(--og-background-color-2);\n\t}\n\n\t#body {\n\t\tflex: 1;\n\t\tborder-top-width: 0;\n\t\toverflow: hidden;\n\t\tmax-height: 100%;\n\t}\n\n\tog-container {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\toverflow: hidden;\n\t}\n`;"]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import { Orientation } from "../types";
|
|
3
|
+
type ResizeEventArgs = {
|
|
4
|
+
offsetX?: number;
|
|
5
|
+
offsetY?: number;
|
|
6
|
+
clientX?: number;
|
|
7
|
+
clientY?: number;
|
|
8
|
+
mouseX?: number;
|
|
9
|
+
mouseY?: number;
|
|
10
|
+
deltaX?: number;
|
|
11
|
+
deltaY?: number;
|
|
12
|
+
};
|
|
13
|
+
export declare class ResizeEvent extends Event {
|
|
14
|
+
readonly resizeArgs: ResizeEventArgs;
|
|
15
|
+
readonly offsetX: number;
|
|
16
|
+
readonly offsetY: number;
|
|
17
|
+
readonly clientX: number;
|
|
18
|
+
readonly clientY: number;
|
|
19
|
+
readonly mouseX: number;
|
|
20
|
+
readonly mouseY: number;
|
|
21
|
+
readonly deltaX: number;
|
|
22
|
+
readonly deltaY: number;
|
|
23
|
+
constructor(type: string, resizeArgs: ResizeEventArgs);
|
|
24
|
+
}
|
|
25
|
+
export declare class Sizer extends LitElement {
|
|
26
|
+
private snappedTo;
|
|
27
|
+
private offsetElement;
|
|
28
|
+
private lineElm;
|
|
29
|
+
private _resizing;
|
|
30
|
+
private startX;
|
|
31
|
+
private startY;
|
|
32
|
+
private offset;
|
|
33
|
+
private startWidth;
|
|
34
|
+
private startHeight;
|
|
35
|
+
private startResize;
|
|
36
|
+
private mouseDownTime;
|
|
37
|
+
static styles: import("lit").CSSResult;
|
|
38
|
+
orientation: Orientation;
|
|
39
|
+
noGuideLine: boolean;
|
|
40
|
+
get resizing(): boolean;
|
|
41
|
+
constructor();
|
|
42
|
+
show: () => void;
|
|
43
|
+
hide: () => void;
|
|
44
|
+
_onMouseLeave: () => void;
|
|
45
|
+
_onMouseDown: (e: MouseEvent) => void;
|
|
46
|
+
private startResizing;
|
|
47
|
+
_onMouseMove: (e: MouseEvent) => void;
|
|
48
|
+
_onMouseUp: (e: MouseEvent) => void;
|
|
49
|
+
render(): void;
|
|
50
|
+
snap(elm: HTMLElement, offsetElement?: HTMLElement): void;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=sizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sizer.d.ts","sourceRoot":"","sources":["../../src/ui/sizer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAO,MAAM,KAAK,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,KAAK,eAAe,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,WAAY,SAAQ,KAAK;aAWK,UAAU,EAAE,eAAe;IATrE,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,IAAI,EAAE,MAAM,EAAkB,UAAU,EAAE,eAAe;CAYrE;AAED,qBACa,KAAM,SAAQ,UAAU;IAEpC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAK;IAE1B,MAAM,CAAC,MAAM,0BA6CX;IAGF,WAAW,EAAE,WAAW,CAAC;IAGzB,WAAW,UAAS;IAEpB,IAAW,QAAQ,YAA4B;;IAU/C,IAAI,aAGH;IAED,IAAI,aAIH;IAED,aAAa,aAEZ;IAED,YAAY,GAAI,GAAG,UAAU,UAkB5B;IAED,OAAO,CAAC,aAAa;IA8BrB,YAAY,GAAI,GAAG,UAAU,UAe3B;IAEF,UAAU,GAAI,GAAG,UAAU,UAc1B;IAED,MAAM;IAON,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,aAAa,cAAqB;CAezD"}
|
package/dist/ui/sizer.js
ADDED
|
@@ -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 * as dom from "../common/dom";
|
|
8
|
+
import constants from "../constants";
|
|
9
|
+
import { LitElement, css } from 'lit';
|
|
10
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
11
|
+
export class ResizeEvent extends Event {
|
|
12
|
+
constructor(type, resizeArgs) {
|
|
13
|
+
super(type);
|
|
14
|
+
this.resizeArgs = resizeArgs;
|
|
15
|
+
resizeArgs = resizeArgs || {};
|
|
16
|
+
this.offsetX = resizeArgs.offsetX;
|
|
17
|
+
this.offsetY = resizeArgs.offsetY;
|
|
18
|
+
this.clientX = resizeArgs.clientX;
|
|
19
|
+
this.clientY = resizeArgs.clientY;
|
|
20
|
+
this.mouseX = resizeArgs.mouseX;
|
|
21
|
+
this.mouseY = resizeArgs.mouseY;
|
|
22
|
+
this.deltaX = resizeArgs.deltaX;
|
|
23
|
+
this.deltaY = resizeArgs.deltaY;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
let Sizer = class Sizer extends LitElement {
|
|
27
|
+
get resizing() { return this._resizing; }
|
|
28
|
+
constructor() {
|
|
29
|
+
super();
|
|
30
|
+
this._resizing = false;
|
|
31
|
+
this.startX = 0;
|
|
32
|
+
this.startY = 0;
|
|
33
|
+
this.startResize = false;
|
|
34
|
+
this.mouseDownTime = 0;
|
|
35
|
+
this.noGuideLine = false;
|
|
36
|
+
this.show = () => {
|
|
37
|
+
this.classList.add('visible');
|
|
38
|
+
dom.showElement(this);
|
|
39
|
+
};
|
|
40
|
+
this.hide = () => {
|
|
41
|
+
this.classList.remove('visible');
|
|
42
|
+
dom.hideElement(this);
|
|
43
|
+
dom.hideElement(this.lineElm);
|
|
44
|
+
};
|
|
45
|
+
this._onMouseLeave = () => {
|
|
46
|
+
if (!this._resizing)
|
|
47
|
+
this.hide();
|
|
48
|
+
};
|
|
49
|
+
this._onMouseDown = (e) => {
|
|
50
|
+
e.stopPropagation();
|
|
51
|
+
const lastTime = this.mouseDownTime;
|
|
52
|
+
this.mouseDownTime = performance.now();
|
|
53
|
+
if (this.mouseDownTime - lastTime < 500) {
|
|
54
|
+
this.dispatchEvent(new Event('dblclick'));
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.startX = e.pageX;
|
|
58
|
+
this.startY = e.pageY;
|
|
59
|
+
this._resizing = true;
|
|
60
|
+
this.startResize = true;
|
|
61
|
+
this.offset = dom.getElementOffset(this.snappedTo, this.offsetElement);
|
|
62
|
+
this.startWidth = this.snappedTo.clientWidth;
|
|
63
|
+
this.startHeight = this.snappedTo.clientHeight;
|
|
64
|
+
document.addEventListener('mousemove', this._onMouseMove);
|
|
65
|
+
document.addEventListener('mouseup', this._onMouseUp, { once: true });
|
|
66
|
+
};
|
|
67
|
+
this._onMouseMove = (e) => {
|
|
68
|
+
if (this.startResize)
|
|
69
|
+
this.startResizing();
|
|
70
|
+
dom.setPosition(this, this.orientation == 'horizontal' ? {
|
|
71
|
+
l: this.offset.left + this.startWidth - constants.SIZER_SIZE / 2 + e.pageX - this.startX
|
|
72
|
+
} : {
|
|
73
|
+
t: this.offset.top + this.startHeight - constants.SIZER_SIZE / 2 + e.pageY - this.startY
|
|
74
|
+
});
|
|
75
|
+
this.dispatchEvent(new ResizeEvent('resize', {
|
|
76
|
+
deltaX: e.pageX - this.startX,
|
|
77
|
+
deltaY: e.pageY - this.startY,
|
|
78
|
+
mouseX: e.pageX,
|
|
79
|
+
mouseY: e.pageY,
|
|
80
|
+
}));
|
|
81
|
+
};
|
|
82
|
+
this._onMouseUp = (e) => {
|
|
83
|
+
document.removeEventListener('mousemove', this._onMouseMove);
|
|
84
|
+
this._resizing = false;
|
|
85
|
+
if (this.startResize) {
|
|
86
|
+
this.startResize = false;
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
this.hide();
|
|
90
|
+
this.dispatchEvent(new ResizeEvent('resizestop', {
|
|
91
|
+
deltaX: e.pageX - this.startX,
|
|
92
|
+
deltaY: e.pageY - this.startY,
|
|
93
|
+
mouseX: e.pageX,
|
|
94
|
+
mouseY: e.pageY,
|
|
95
|
+
}));
|
|
96
|
+
};
|
|
97
|
+
this.addEventListener('mouseleave', this._onMouseLeave);
|
|
98
|
+
this.addEventListener('mousedown', this._onMouseDown);
|
|
99
|
+
}
|
|
100
|
+
startResizing() {
|
|
101
|
+
this.dispatchEvent(new ResizeEvent('resizestart', {
|
|
102
|
+
deltaX: 0,
|
|
103
|
+
deltaY: 0,
|
|
104
|
+
mouseX: this.startX,
|
|
105
|
+
mouseY: this.startY,
|
|
106
|
+
}));
|
|
107
|
+
if (!this.noGuideLine) {
|
|
108
|
+
dom.showElement(this.lineElm);
|
|
109
|
+
dom.setSize(this.lineElm, this.orientation == 'horizontal' ? {
|
|
110
|
+
w: 1,
|
|
111
|
+
h: this.offsetElement.clientHeight
|
|
112
|
+
} : {
|
|
113
|
+
w: this.offsetElement.clientWidth,
|
|
114
|
+
h: 1
|
|
115
|
+
});
|
|
116
|
+
dom.setPosition(this.lineElm, this.orientation == 'horizontal' ? {
|
|
117
|
+
t: 0,
|
|
118
|
+
r: -1
|
|
119
|
+
} : {
|
|
120
|
+
b: -1,
|
|
121
|
+
l: 0
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
this.startResize = false;
|
|
125
|
+
}
|
|
126
|
+
render() {
|
|
127
|
+
this.shadowRoot.innerHTML = '';
|
|
128
|
+
this.lineElm = dom.createElement('div');
|
|
129
|
+
this.lineElm.className = 'sizer-line';
|
|
130
|
+
this.shadowRoot.appendChild(this.lineElm);
|
|
131
|
+
}
|
|
132
|
+
snap(elm, offsetElement = this.parentElement) {
|
|
133
|
+
this.snappedTo = elm;
|
|
134
|
+
this.offsetElement = offsetElement;
|
|
135
|
+
this.show();
|
|
136
|
+
const offset = dom.getElementOffset(elm, offsetElement);
|
|
137
|
+
if (this.orientation == 'horizontal') {
|
|
138
|
+
dom.setSize(this, { w: constants.SIZER_SIZE, h: elm.offsetHeight });
|
|
139
|
+
dom.setPosition(this, { l: offset.left + elm.offsetWidth - constants.SIZER_SIZE / 2, t: offset.top });
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
dom.setSize(this, { w: elm.offsetWidth, h: constants.SIZER_SIZE });
|
|
143
|
+
dom.setPosition(this, { l: offset.left, t: offset.top + elm.offsetHeight - constants.SIZER_SIZE / 2 });
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
Sizer.styles = css `
|
|
148
|
+
:host {
|
|
149
|
+
z-index: 105;
|
|
150
|
+
position: relative;
|
|
151
|
+
opacity: 0;
|
|
152
|
+
background-color: var(--og-accent-color);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
@keyframes show {
|
|
156
|
+
from { opacity: 0; }
|
|
157
|
+
to { opacity: 1; }
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
:host(.visible) {
|
|
161
|
+
animation: show 1s;
|
|
162
|
+
opacity: 1;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
:host([orientation="vertical"]) {
|
|
166
|
+
cursor: row-resize;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
:host([orientation="vertical"]) .sizer-line {
|
|
170
|
+
background: repeating-linear-gradient(
|
|
171
|
+
90deg,
|
|
172
|
+
var(--og-accent-color),
|
|
173
|
+
var(--og-accent-color) 10px,
|
|
174
|
+
transparent 10px,
|
|
175
|
+
transparent 20px
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
:host([orientation="horizontal"]) {
|
|
180
|
+
cursor: col-resize;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
:host([orientation="horizontal"]) .sizer-line {
|
|
184
|
+
background: repeating-linear-gradient(
|
|
185
|
+
0deg,
|
|
186
|
+
var(--og-accent-color),
|
|
187
|
+
var(--og-accent-color) 10px,
|
|
188
|
+
transparent 10px,
|
|
189
|
+
transparent 20px
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
`;
|
|
193
|
+
__decorate([
|
|
194
|
+
property({ type: String, reflect: true })
|
|
195
|
+
], Sizer.prototype, "orientation", void 0);
|
|
196
|
+
__decorate([
|
|
197
|
+
property({ type: Boolean, reflect: true })
|
|
198
|
+
], Sizer.prototype, "noGuideLine", void 0);
|
|
199
|
+
Sizer = __decorate([
|
|
200
|
+
customElement('og-sizer')
|
|
201
|
+
], Sizer);
|
|
202
|
+
export { Sizer };
|
|
203
|
+
//# sourceMappingURL=sizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sizer.js","sourceRoot":"","sources":["../../src/ui/sizer.ts"],"names":[],"mappings":"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","sourcesContent":["import * as dom from \"../common/dom\";\nimport constants from \"../constants\";\nimport { LitElement, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { Orientation } from \"../types\";\n\ntype ResizeEventArgs = {\n\toffsetX?: number,\n\toffsetY?: number,\n\tclientX?: number,\n\tclientY?: number,\n\tmouseX?: number,\n\tmouseY?: number,\n\tdeltaX?: number,\n\tdeltaY?: number,\n};\n\nexport class ResizeEvent extends Event {\n\t\n\tpublic readonly offsetX: number;\n\tpublic readonly offsetY: number;\n\tpublic readonly clientX: number;\n\tpublic readonly clientY: number;\n\tpublic readonly mouseX: number;\n\tpublic readonly mouseY: number;\n\tpublic readonly deltaX: number;\n\tpublic readonly deltaY: number;\n\t\n\tconstructor(type: string, public readonly resizeArgs: ResizeEventArgs) {\n\t\tsuper(type);\n\t\tresizeArgs = resizeArgs || {};\n\t\tthis.offsetX = resizeArgs.offsetX;\n\t\tthis.offsetY = resizeArgs.offsetY;\n\t\tthis.clientX = resizeArgs.clientX;\n\t\tthis.clientY = resizeArgs.clientY;\n\t\tthis.mouseX = resizeArgs.mouseX;\n\t\tthis.mouseY = resizeArgs.mouseY;\n\t\tthis.deltaX = resizeArgs.deltaX;\n\t\tthis.deltaY = resizeArgs.deltaY;\n\t}\n}\n\n@customElement('og-sizer')\nexport class Sizer extends LitElement {\n\n\tprivate snappedTo: HTMLElement;\n\tprivate offsetElement: HTMLElement;\n\tprivate lineElm: HTMLDivElement;\n\tprivate _resizing = false;\n\tprivate startX = 0;\n\tprivate startY = 0;\n\tprivate offset: {top: number, left: number};\n\tprivate startWidth: number;\n\tprivate startHeight: number;\n\tprivate startResize = false;\n\tprivate mouseDownTime = 0;\n\n\tstatic styles = css`\n\t\t:host {\n\t\t\tz-index: 105;\n\t\t\tposition: relative;\n\t\t\topacity: 0;\n\t\t\tbackground-color: var(--og-accent-color);\n\t\t}\n\n\t\t@keyframes show {\n\t\t\tfrom { opacity: 0; }\n\t\t\tto { opacity: 1; }\n\t\t}\n\n\t\t:host(.visible) {\n\t\t\tanimation: show 1s;\n\t\t\topacity: 1;\n\t\t}\n\n\t\t:host([orientation=\"vertical\"]) {\n\t\t\tcursor: row-resize;\n\t\t}\n\n\t\t:host([orientation=\"vertical\"]) .sizer-line {\n\t\t\tbackground: repeating-linear-gradient(\n\t\t\t\t90deg,\n\t\t\t\tvar(--og-accent-color),\n\t\t\t\tvar(--og-accent-color) 10px,\n\t\t\t\ttransparent 10px,\n\t\t\t\ttransparent 20px\n\t\t\t);\n\t\t}\n\n\t\t:host([orientation=\"horizontal\"]) {\n\t\t\tcursor: col-resize;\n\t\t}\n\n\t\t:host([orientation=\"horizontal\"]) .sizer-line {\n\t\t\tbackground: repeating-linear-gradient(\n\t\t\t\t0deg,\n\t\t\t\tvar(--og-accent-color),\n\t\t\t\tvar(--og-accent-color) 10px,\n\t\t\t\ttransparent 10px,\n\t\t\t\ttransparent 20px\n\t\t\t);\n\t\t}\n\t`;\n\n\t@property({type: String, reflect: true})\n\torientation: Orientation;\n\n\t@property({type: Boolean, reflect: true})\n\tnoGuideLine = false;\n\t\n\tpublic get resizing() { return this._resizing }\n\n\t\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.addEventListener('mouseleave', this._onMouseLeave);\n\t\tthis.addEventListener('mousedown', this._onMouseDown);\n\t}\n\n\tshow = () => {\n\t\tthis.classList.add('visible');\n\t\tdom.showElement(this);\n\t}\n\n\thide = () => {\n\t\tthis.classList.remove('visible');\n\t\tdom.hideElement(this);\n\t\tdom.hideElement(this.lineElm);\n\t}\n\n\t_onMouseLeave = () => {\n\t\tif (!this._resizing) this.hide();\n\t} \n\n\t_onMouseDown = (e: MouseEvent) => {\n\t\te.stopPropagation();\n\t\tconst lastTime = this.mouseDownTime;\n\t\tthis.mouseDownTime = performance.now();\n\t\tif (this.mouseDownTime - lastTime < 500) {\n\t\t\tthis.dispatchEvent(new Event('dblclick'));\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tthis.startX = e.pageX;\n\t\tthis.startY = e.pageY;\n\t\tthis._resizing = true;\n\t\tthis.startResize = true;\n\t\tthis.offset = dom.getElementOffset(this.snappedTo, this.offsetElement);\n\t\tthis.startWidth = this.snappedTo.clientWidth;\n\t\tthis.startHeight = this.snappedTo.clientHeight;\n\t\tdocument.addEventListener('mousemove', this._onMouseMove);\n\t\tdocument.addEventListener('mouseup', this._onMouseUp, {once: true});\n\t}\n\n\tprivate startResizing() {\n\t\tthis.dispatchEvent(new ResizeEvent('resizestart', {\n\t\t\tdeltaX: 0,\n\t\t\tdeltaY: 0,\n\t\t\tmouseX: this.startX,\n\t\t\tmouseY: this.startY,\n\t\t}));\n\n\t\tif (!this.noGuideLine) {\n\t\t\tdom.showElement(this.lineElm);\n\t\t\tdom.setSize(this.lineElm, this.orientation == 'horizontal' ? {\n\t\t\t\tw: 1, \n\t\t\t\th: this.offsetElement.clientHeight\n\t\t\t} : {\n\t\t\t\tw: this.offsetElement.clientWidth, \n\t\t\t\th: 1\n\t\t\t});\n\t\n\t\t\tdom.setPosition(this.lineElm, this.orientation == 'horizontal' ? {\n\t\t\t\tt: 0, \n\t\t\t\tr: -1\n\t\t\t} : {\n\t\t\t\tb: -1, \n\t\t\t\tl: 0\n\t\t\t});\n\t\t}\n\n\t\tthis.startResize = false;\n\t}\n\n\t_onMouseMove = (e: MouseEvent) => {\n\t\tif (this.startResize) this.startResizing();\n\n\t\tdom.setPosition(this, this.orientation == 'horizontal' ? {\n\t\t\tl: this.offset.left + this.startWidth - constants.SIZER_SIZE / 2 + e.pageX - this.startX\n\t\t} : {\n\t\t\tt: this.offset.top + this.startHeight - constants.SIZER_SIZE / 2 + e.pageY - this.startY\n\t\t});\n\n\t\tthis.dispatchEvent(new ResizeEvent('resize', {\n\t\t\tdeltaX: e.pageX - this.startX,\n\t\t\tdeltaY: e.pageY - this.startY,\n\t\t\tmouseX: e.pageX,\n\t\t\tmouseY: e.pageY,\n\t\t}));\n\t};\n\n\t_onMouseUp = (e: MouseEvent) => {\n\t\tdocument.removeEventListener('mousemove', this._onMouseMove);\n\t\tthis._resizing = false;\n\t\tif (this.startResize) {\n\t\t\tthis.startResize = false;\n\t\t\treturn;\n\t\t}\n\t\tthis.hide();\n\t\tthis.dispatchEvent(new ResizeEvent('resizestop', {\n\t\t\tdeltaX: e.pageX - this.startX,\n\t\t\tdeltaY: e.pageY - this.startY,\n\t\t\tmouseX: e.pageX,\n\t\t\tmouseY: e.pageY,\n\t\t}));\n\t}\n\n\trender() {\n\t\tthis.shadowRoot.innerHTML = '';\n\t\tthis.lineElm = dom.createElement('div');\n\t\tthis.lineElm.className = 'sizer-line';\n\t\tthis.shadowRoot.appendChild(this.lineElm);\n\t}\n\n\tsnap(elm: HTMLElement, offsetElement = this.parentElement) {\n\t\tthis.snappedTo = elm;\n\t\tthis.offsetElement = offsetElement;\n\t\tthis.show();\n\t\tconst offset = dom.getElementOffset(elm, offsetElement);\n\n\t\tif (this.orientation == 'horizontal') {\n\t\t\tdom.setSize(this, {w: constants.SIZER_SIZE, h: elm.offsetHeight});\n\t\t\tdom.setPosition(this, {l: offset.left + elm.offsetWidth - constants.SIZER_SIZE / 2, t: offset.top});\n\t\t} else {\n\t\t\tdom.setSize(this, {w: elm.offsetWidth, h: constants.SIZER_SIZE});\n\t\t\tdom.setPosition(this, {l: offset.left, t: offset.top + elm.offsetHeight - constants.SIZER_SIZE / 2});\n\t\t}\n\t}\n\n}"]}
|