@electral-io/webspa 0.0.0-stage → 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/README.md +710 -2
- package/dist/GoogleSansFlex24pt-Black.55bc5c5a.woff +0 -0
- package/dist/GoogleSansFlex24pt-Black.b952c823.woff2 +0 -0
- package/dist/GoogleSansFlex24pt-Bold.874d19a6.woff2 +0 -0
- package/dist/GoogleSansFlex24pt-Bold.d908201f.woff +0 -0
- package/dist/GoogleSansFlex24pt-ExtraBold.ca04f51f.woff2 +0 -0
- package/dist/GoogleSansFlex24pt-ExtraBold.e526e9db.woff +0 -0
- package/dist/GoogleSansFlex24pt-ExtraLight.8108859d.woff +0 -0
- package/dist/GoogleSansFlex24pt-ExtraLight.830b9f19.woff2 +0 -0
- package/dist/GoogleSansFlex24pt-Light.bb140a25.woff +0 -0
- package/dist/GoogleSansFlex24pt-Light.fbe80f18.woff2 +0 -0
- package/dist/GoogleSansFlex24pt-Medium.ba242c40.woff2 +0 -0
- package/dist/GoogleSansFlex24pt-Medium.ddbc6d6f.woff +0 -0
- package/dist/GoogleSansFlex24pt-Regular.2338814d.woff2 +0 -0
- package/dist/GoogleSansFlex24pt-Regular.c26e9621.woff +0 -0
- package/dist/GoogleSansFlex24pt-SemiBold.535d1221.woff +0 -0
- package/dist/GoogleSansFlex24pt-SemiBold.f9f290b9.woff2 +0 -0
- package/dist/GoogleSansFlex24pt-Thin.1494da19.woff +0 -0
- package/dist/GoogleSansFlex24pt-Thin.4c26aecf.woff2 +0 -0
- package/dist/ibm-plex-mono-latin-400-normal.46c527cc.woff2 +0 -0
- package/dist/ibm-plex-mono-latin-500-normal.4eac63d2.woff2 +0 -0
- package/dist/ibm-plex-mono-latin-ext-400-normal.f7114466.woff2 +0 -0
- package/dist/ibm-plex-mono-latin-ext-500-normal.08d28480.woff2 +0 -0
- package/dist/index.css +10152 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +4071 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26244 -0
- package/dist/index.js.map +1 -0
- package/dist/subset-Inter18pt-Black.564e4f6e.woff2 +0 -0
- package/dist/subset-Inter18pt-BlackItalic.69ce2c78.woff2 +0 -0
- package/dist/subset-Inter18pt-Bold.5d1d6992.woff2 +0 -0
- package/dist/subset-Inter18pt-BoldItalic.e6156b59.woff2 +0 -0
- package/dist/subset-Inter18pt-ExtraBold.2dfd989d.woff2 +0 -0
- package/dist/subset-Inter18pt-ExtraBoldItalic.68baab79.woff2 +0 -0
- package/dist/subset-Inter18pt-ExtraLight.91d746d9.woff2 +0 -0
- package/dist/subset-Inter18pt-ExtraLightItalic.f44c7f9a.woff2 +0 -0
- package/dist/subset-Inter18pt-Italic.7408decc.woff2 +0 -0
- package/dist/subset-Inter18pt-Light.f595f92d.woff2 +0 -0
- package/dist/subset-Inter18pt-LightItalic.f713d0f0.woff2 +0 -0
- package/dist/subset-Inter18pt-Medium.a680afd7.woff2 +0 -0
- package/dist/subset-Inter18pt-MediumItalic.f0c8bf8a.woff2 +0 -0
- package/dist/subset-Inter18pt-Regular.987ab761.woff2 +0 -0
- package/dist/subset-Inter18pt-SemiBold.e24d9ca5.woff2 +0 -0
- package/dist/subset-Inter18pt-SemiBoldItalic.fb6755ec.woff2 +0 -0
- package/dist/subset-Inter18pt-Thin.04cc6264.woff2 +0 -0
- package/dist/subset-Inter18pt-ThinItalic.5faec1bb.woff2 +0 -0
- package/dist/subset-Quicksand-Bold.78e1b5e6.woff2 +0 -0
- package/dist/subset-Quicksand-Light.dc2d2856.woff2 +0 -0
- package/dist/subset-Quicksand-Medium.6263fcab.woff2 +0 -0
- package/dist/subset-Quicksand-Regular.06f2ca43.woff2 +0 -0
- package/dist/subset-Quicksand-SemiBold.4c169654.woff2 +0 -0
- package/dist/web-spa-css-custom-data.json +1935 -0
- package/package.json +89 -4
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,4071 @@
|
|
|
1
|
+
import { CellComponent, RowComponent, TabulatorFull, Options, ColumnDefinition, RowLookup, Formatter, Filter } from "tabulator-tables";
|
|
2
|
+
import { Group, Layer } from "ol/layer";
|
|
3
|
+
import VectorTileLayer from "ol/layer/VectorTile";
|
|
4
|
+
import { Feature, Tile } from "ol";
|
|
5
|
+
import VectorSource from "ol/source/Vector";
|
|
6
|
+
import { Geometry, LineString, Point, Polygon } from "ol/geom";
|
|
7
|
+
import VectorLayer from "ol/layer/Vector";
|
|
8
|
+
import Feature, { FeatureLike } from "ol/Feature";
|
|
9
|
+
import { Coordinate } from "ol/coordinate";
|
|
10
|
+
import { GeoJSONGeometry } from "ol/format/GeoJSON";
|
|
11
|
+
import Geometry from "ol/geom/Geometry";
|
|
12
|
+
import { Pixel } from "ol/pixel";
|
|
13
|
+
import ImageTileSource from "ol/source/ImageTile";
|
|
14
|
+
import TileLayer from "ol/layer/Tile";
|
|
15
|
+
import XYZ from "ol/source/XYZ";
|
|
16
|
+
import { Projection } from "ol/proj";
|
|
17
|
+
import { Extent } from "ol/extent";
|
|
18
|
+
import { ImageArcGISRest, TileArcGISRest, ImageWMS, Vector } from "ol/source";
|
|
19
|
+
import ImageLayer from "ol/layer/Image";
|
|
20
|
+
import TileWmsSource from "ol/source/TileWMS";
|
|
21
|
+
import Polygon from "ol/geom/Polygon";
|
|
22
|
+
import ImageSource from "ol/source/ImageWMS";
|
|
23
|
+
import { Style } from "ol/style";
|
|
24
|
+
import { ColorLike } from "ol/colorlike";
|
|
25
|
+
import OMap from "ol/Map";
|
|
26
|
+
import { Draw } from "ol/interaction";
|
|
27
|
+
import View from "ol/View";
|
|
28
|
+
import Point from "ol/geom/Point";
|
|
29
|
+
import Control from "ol/control/Control";
|
|
30
|
+
import { StyleLike } from "ol/style/Style";
|
|
31
|
+
import { FlatStyleLike } from "ol/style/flat";
|
|
32
|
+
import RenderFeature from "ol/render/Feature";
|
|
33
|
+
import GroupLayer from "ol/layer/Group";
|
|
34
|
+
export interface ComponentOptions {
|
|
35
|
+
elementName: string;
|
|
36
|
+
classes?: string[];
|
|
37
|
+
styles?: Partial<CSSStyleDeclaration>;
|
|
38
|
+
extends?: string;
|
|
39
|
+
}
|
|
40
|
+
export function Component(componentOptions: ComponentOptions): ClassDecorator;
|
|
41
|
+
export function Prop(): PropertyDecorator;
|
|
42
|
+
export enum CommandTypes {
|
|
43
|
+
Command = 0,
|
|
44
|
+
Tool = 1,
|
|
45
|
+
Select = 2,
|
|
46
|
+
Custom = 3
|
|
47
|
+
}
|
|
48
|
+
export enum SystemEvents {
|
|
49
|
+
ApplicationStart = "ApplicationStart",
|
|
50
|
+
ApplicationShow = "ApplicationShow",
|
|
51
|
+
ApplicationHide = "ApplicationHide",
|
|
52
|
+
ApplicationEnd = "ApplicationEnd",
|
|
53
|
+
PageNavigated = "PageNavigated",
|
|
54
|
+
CommandStart = "CommandStart",
|
|
55
|
+
CommandCancel = "CommandCancel",
|
|
56
|
+
PanelResizeStart = "PanelResizeStart",
|
|
57
|
+
PanelResizeEnd = "PanelResizeEnd",
|
|
58
|
+
UserLogin = "UserLogin",
|
|
59
|
+
UserLogout = "UserLogout",
|
|
60
|
+
UserBeforeLogout = "UserBeforeLogout",
|
|
61
|
+
TokenRefresh = "TokenRefresh",
|
|
62
|
+
ThemeDarkChanged = "ThemeDarkChanged",
|
|
63
|
+
ThemeColorChanged = "ThemeColorChanged",
|
|
64
|
+
DependentResourceChanged = "DependentResourceChanged",
|
|
65
|
+
FocusedElementChanged = "FocusedElementChanged"
|
|
66
|
+
}
|
|
67
|
+
export enum FrameworkPages {
|
|
68
|
+
App = "AppPage",
|
|
69
|
+
Admin = "AdminPage"
|
|
70
|
+
}
|
|
71
|
+
export enum FrameworkCommandTargets {
|
|
72
|
+
Ribbon = "ribbon",
|
|
73
|
+
UserMenu = "user-menu"
|
|
74
|
+
}
|
|
75
|
+
export enum StartupJobTypes {
|
|
76
|
+
PreLoad = 0,
|
|
77
|
+
PostLoad = 1
|
|
78
|
+
}
|
|
79
|
+
export enum ServiceTypes {
|
|
80
|
+
Scoped = 0,
|
|
81
|
+
Singleton = 1,
|
|
82
|
+
Transient = 2
|
|
83
|
+
}
|
|
84
|
+
export enum PanelPos {
|
|
85
|
+
Center = 0,
|
|
86
|
+
Left = 1,
|
|
87
|
+
Right = 2,
|
|
88
|
+
Bottom = 3,
|
|
89
|
+
Window = 4
|
|
90
|
+
}
|
|
91
|
+
export const IconClass: {
|
|
92
|
+
search: string;
|
|
93
|
+
save: string;
|
|
94
|
+
query: string;
|
|
95
|
+
add: string;
|
|
96
|
+
new: string;
|
|
97
|
+
delete: string;
|
|
98
|
+
edit: string;
|
|
99
|
+
cancel: string;
|
|
100
|
+
chevron_down: string;
|
|
101
|
+
chevron_up: string;
|
|
102
|
+
chevron_left: string;
|
|
103
|
+
chevron_right: string;
|
|
104
|
+
caret_up: string;
|
|
105
|
+
caret_down: string;
|
|
106
|
+
caret_left: string;
|
|
107
|
+
caret_right: string;
|
|
108
|
+
caret_up_fill: string;
|
|
109
|
+
caret_down_fill: string;
|
|
110
|
+
caret_left_fill: string;
|
|
111
|
+
caret_right_fill: string;
|
|
112
|
+
X: string;
|
|
113
|
+
error: string;
|
|
114
|
+
warning: string;
|
|
115
|
+
info: string;
|
|
116
|
+
success: string;
|
|
117
|
+
dots: string;
|
|
118
|
+
dots_v: string;
|
|
119
|
+
logout: string;
|
|
120
|
+
settings: string;
|
|
121
|
+
world: string;
|
|
122
|
+
alert: string;
|
|
123
|
+
alert_fill: string;
|
|
124
|
+
hand: string;
|
|
125
|
+
zoom_in: string;
|
|
126
|
+
zoom_out: string;
|
|
127
|
+
alarm: string;
|
|
128
|
+
cursor: string;
|
|
129
|
+
key: string;
|
|
130
|
+
layers: string;
|
|
131
|
+
person: string;
|
|
132
|
+
people: string;
|
|
133
|
+
pin: string;
|
|
134
|
+
pin_fill: string;
|
|
135
|
+
pin_angle: string;
|
|
136
|
+
pin_angle_fill: string;
|
|
137
|
+
image: string;
|
|
138
|
+
book: string;
|
|
139
|
+
download: string;
|
|
140
|
+
bbox: string;
|
|
141
|
+
circle: string;
|
|
142
|
+
circle_fill: string;
|
|
143
|
+
clock: string;
|
|
144
|
+
clock_history: string;
|
|
145
|
+
crosshair: string;
|
|
146
|
+
dash: string;
|
|
147
|
+
email: string;
|
|
148
|
+
eye: string;
|
|
149
|
+
eye_slash: string;
|
|
150
|
+
flag: string;
|
|
151
|
+
flag_fill: string;
|
|
152
|
+
journal: string;
|
|
153
|
+
lightning: string;
|
|
154
|
+
lightning_fill: string;
|
|
155
|
+
calendar: string;
|
|
156
|
+
list: string;
|
|
157
|
+
map: string;
|
|
158
|
+
map_fill: string;
|
|
159
|
+
microphone: string;
|
|
160
|
+
microphone_slash: string;
|
|
161
|
+
paperclip: string;
|
|
162
|
+
pinmap: string;
|
|
163
|
+
puzzle: string;
|
|
164
|
+
question: string;
|
|
165
|
+
refresh: string;
|
|
166
|
+
refresh_circle: string;
|
|
167
|
+
search_minus: string;
|
|
168
|
+
light: string;
|
|
169
|
+
dark: string;
|
|
170
|
+
palette: string;
|
|
171
|
+
palette_fill: string;
|
|
172
|
+
get(key: BootstrapIconsId): string;
|
|
173
|
+
};
|
|
174
|
+
export type BootstrapIconsId = "123" | "0-circle-fill" | "0-circle" | "0-square-fill" | "0-square" | "1-circle-fill" | "1-circle" | "1-square-fill" | "1-square" | "2-circle-fill" | "2-circle" | "2-square-fill" | "2-square" | "3-circle-fill" | "3-circle" | "3-square-fill" | "3-square" | "4-circle-fill" | "4-circle" | "4-square-fill" | "4-square" | "5-circle-fill" | "5-circle" | "5-square-fill" | "5-square" | "6-circle-fill" | "6-circle" | "6-square-fill" | "6-square" | "7-circle-fill" | "7-circle" | "7-square-fill" | "7-square" | "8-circle-fill" | "8-circle" | "8-square-fill" | "8-square" | "9-circle-fill" | "9-circle" | "9-square-fill" | "9-square" | "activity" | "airplane-engines-fill" | "airplane-engines" | "airplane-fill" | "airplane" | "alarm-fill" | "alarm" | "alexa" | "align-bottom" | "align-center" | "align-end" | "align-middle" | "align-start" | "align-top" | "alipay" | "alphabet-uppercase" | "alphabet" | "alt" | "amazon" | "amd" | "android" | "android2" | "anthropic" | "app-indicator" | "app" | "apple-music" | "apple" | "archive-fill" | "archive" | "arrow-90deg-down" | "arrow-90deg-left" | "arrow-90deg-right" | "arrow-90deg-up" | "arrow-bar-down" | "arrow-bar-left" | "arrow-bar-right" | "arrow-bar-up" | "arrow-clockwise" | "arrow-counterclockwise" | "arrow-down-circle-fill" | "arrow-down-circle" | "arrow-down-left-circle-fill" | "arrow-down-left-circle" | "arrow-down-left-square-fill" | "arrow-down-left-square" | "arrow-down-left" | "arrow-down-right-circle-fill" | "arrow-down-right-circle" | "arrow-down-right-square-fill" | "arrow-down-right-square" | "arrow-down-right" | "arrow-down-short" | "arrow-down-square-fill" | "arrow-down-square" | "arrow-down-up" | "arrow-down" | "arrow-left-circle-fill" | "arrow-left-circle" | "arrow-left-right" | "arrow-left-short" | "arrow-left-square-fill" | "arrow-left-square" | "arrow-left" | "arrow-repeat" | "arrow-return-left" | "arrow-return-right" | "arrow-right-circle-fill" | "arrow-right-circle" | "arrow-right-short" | "arrow-right-square-fill" | "arrow-right-square" | "arrow-right" | "arrow-through-heart-fill" | "arrow-through-heart" | "arrow-up-circle-fill" | "arrow-up-circle" | "arrow-up-left-circle-fill" | "arrow-up-left-circle" | "arrow-up-left-square-fill" | "arrow-up-left-square" | "arrow-up-left" | "arrow-up-right-circle-fill" | "arrow-up-right-circle" | "arrow-up-right-square-fill" | "arrow-up-right-square" | "arrow-up-right" | "arrow-up-short" | "arrow-up-square-fill" | "arrow-up-square" | "arrow-up" | "arrows-angle-contract" | "arrows-angle-expand" | "arrows-collapse-vertical" | "arrows-collapse" | "arrows-expand-vertical" | "arrows-expand" | "arrows-fullscreen" | "arrows-move" | "arrows-vertical" | "arrows" | "aspect-ratio-fill" | "aspect-ratio" | "asterisk" | "at" | "award-fill" | "award" | "back" | "backpack-fill" | "backpack" | "backpack2-fill" | "backpack2" | "backpack3-fill" | "backpack3" | "backpack4-fill" | "backpack4" | "backspace-fill" | "backspace-reverse-fill" | "backspace-reverse" | "backspace" | "badge-3d-fill" | "badge-3d" | "badge-4k-fill" | "badge-4k" | "badge-8k-fill" | "badge-8k" | "badge-ad-fill" | "badge-ad" | "badge-ar-fill" | "badge-ar" | "badge-cc-fill" | "badge-cc" | "badge-hd-fill" | "badge-hd" | "badge-sd-fill" | "badge-sd" | "badge-tm-fill" | "badge-tm" | "badge-vo-fill" | "badge-vo" | "badge-vr-fill" | "badge-vr" | "badge-wc-fill" | "badge-wc" | "bag-check-fill" | "bag-check" | "bag-dash-fill" | "bag-dash" | "bag-fill" | "bag-heart-fill" | "bag-heart" | "bag-plus-fill" | "bag-plus" | "bag-x-fill" | "bag-x" | "bag" | "balloon-fill" | "balloon-heart-fill" | "balloon-heart" | "balloon" | "ban-fill" | "ban" | "bandaid-fill" | "bandaid" | "bank" | "bank2" | "bar-chart-fill" | "bar-chart-line-fill" | "bar-chart-line" | "bar-chart-steps" | "bar-chart" | "basket-fill" | "basket" | "basket2-fill" | "basket2" | "basket3-fill" | "basket3" | "battery-charging" | "battery-full" | "battery-half" | "battery-low" | "battery" | "beaker-fill" | "beaker" | "behance" | "bell-fill" | "bell-slash-fill" | "bell-slash" | "bell" | "bezier" | "bezier2" | "bicycle" | "bing" | "binoculars-fill" | "binoculars" | "blockquote-left" | "blockquote-right" | "bluesky" | "bluetooth" | "body-text" | "book-fill" | "book-half" | "book" | "bookmark-check-fill" | "bookmark-check" | "bookmark-dash-fill" | "bookmark-dash" | "bookmark-fill" | "bookmark-heart-fill" | "bookmark-heart" | "bookmark-plus-fill" | "bookmark-plus" | "bookmark-star-fill" | "bookmark-star" | "bookmark-x-fill" | "bookmark-x" | "bookmark" | "bookmarks-fill" | "bookmarks" | "bookshelf" | "boombox-fill" | "boombox" | "bootstrap-fill" | "bootstrap-reboot" | "bootstrap" | "border-all" | "border-bottom" | "border-center" | "border-inner" | "border-left" | "border-middle" | "border-outer" | "border-right" | "border-style" | "border-top" | "border-width" | "border" | "bounding-box-circles" | "bounding-box" | "box-arrow-down-left" | "box-arrow-down-right" | "box-arrow-down" | "box-arrow-in-down-left" | "box-arrow-in-down-right" | "box-arrow-in-down" | "box-arrow-in-left" | "box-arrow-in-right" | "box-arrow-in-up-left" | "box-arrow-in-up-right" | "box-arrow-in-up" | "box-arrow-left" | "box-arrow-right" | "box-arrow-up-left" | "box-arrow-up-right" | "box-arrow-up" | "box-fill" | "box-seam-fill" | "box-seam" | "box" | "box2-fill" | "box2-heart-fill" | "box2-heart" | "box2" | "boxes" | "braces-asterisk" | "braces" | "bricks" | "briefcase-fill" | "briefcase" | "brightness-alt-high-fill" | "brightness-alt-high" | "brightness-alt-low-fill" | "brightness-alt-low" | "brightness-high-fill" | "brightness-high" | "brightness-low-fill" | "brightness-low" | "brilliance" | "broadcast-pin" | "broadcast" | "browser-chrome" | "browser-edge" | "browser-firefox" | "browser-safari" | "brush-fill" | "brush" | "bucket-fill" | "bucket" | "bug-fill" | "bug" | "building-add" | "building-check" | "building-dash" | "building-down" | "building-exclamation" | "building-fill-add" | "building-fill-check" | "building-fill-dash" | "building-fill-down" | "building-fill-exclamation" | "building-fill-gear" | "building-fill-lock" | "building-fill-slash" | "building-fill-up" | "building-fill-x" | "building-fill" | "building-gear" | "building-lock" | "building-slash" | "building-up" | "building-x" | "building" | "buildings-fill" | "buildings" | "bullseye" | "bus-front-fill" | "bus-front" | "c-circle-fill" | "c-circle" | "c-square-fill" | "c-square" | "cake-fill" | "cake" | "cake2-fill" | "cake2" | "calculator-fill" | "calculator" | "calendar-check-fill" | "calendar-check" | "calendar-date-fill" | "calendar-date" | "calendar-day-fill" | "calendar-day" | "calendar-event-fill" | "calendar-event" | "calendar-fill" | "calendar-heart-fill" | "calendar-heart" | "calendar-minus-fill" | "calendar-minus" | "calendar-month-fill" | "calendar-month" | "calendar-plus-fill" | "calendar-plus" | "calendar-range-fill" | "calendar-range" | "calendar-week-fill" | "calendar-week" | "calendar-x-fill" | "calendar-x" | "calendar" | "calendar2-check-fill" | "calendar2-check" | "calendar2-date-fill" | "calendar2-date" | "calendar2-day-fill" | "calendar2-day" | "calendar2-event-fill" | "calendar2-event" | "calendar2-fill" | "calendar2-heart-fill" | "calendar2-heart" | "calendar2-minus-fill" | "calendar2-minus" | "calendar2-month-fill" | "calendar2-month" | "calendar2-plus-fill" | "calendar2-plus" | "calendar2-range-fill" | "calendar2-range" | "calendar2-week-fill" | "calendar2-week" | "calendar2-x-fill" | "calendar2-x" | "calendar2" | "calendar3-event-fill" | "calendar3-event" | "calendar3-fill" | "calendar3-range-fill" | "calendar3-range" | "calendar3-week-fill" | "calendar3-week" | "calendar3" | "calendar4-event" | "calendar4-range" | "calendar4-week" | "calendar4" | "camera-fill" | "camera-reels-fill" | "camera-reels" | "camera-video-fill" | "camera-video-off-fill" | "camera-video-off" | "camera-video" | "camera" | "camera2" | "capslock-fill" | "capslock" | "capsule-pill" | "capsule" | "car-front-fill" | "car-front" | "card-checklist" | "card-heading" | "card-image" | "card-list" | "card-text" | "caret-down-fill" | "caret-down-square-fill" | "caret-down-square" | "caret-down" | "caret-left-fill" | "caret-left-square-fill" | "caret-left-square" | "caret-left" | "caret-right-fill" | "caret-right-square-fill" | "caret-right-square" | "caret-right" | "caret-up-fill" | "caret-up-square-fill" | "caret-up-square" | "caret-up" | "cart-check-fill" | "cart-check" | "cart-dash-fill" | "cart-dash" | "cart-fill" | "cart-plus-fill" | "cart-plus" | "cart-x-fill" | "cart-x" | "cart" | "cart2" | "cart3" | "cart4" | "cash-coin" | "cash-stack" | "cash" | "cassette-fill" | "cassette" | "cast" | "cc-circle-fill" | "cc-circle" | "cc-square-fill" | "cc-square" | "chat-dots-fill" | "chat-dots" | "chat-fill" | "chat-heart-fill" | "chat-heart" | "chat-left-dots-fill" | "chat-left-dots" | "chat-left-fill" | "chat-left-heart-fill" | "chat-left-heart" | "chat-left-quote-fill" | "chat-left-quote" | "chat-left-text-fill" | "chat-left-text" | "chat-left" | "chat-quote-fill" | "chat-quote" | "chat-right-dots-fill" | "chat-right-dots" | "chat-right-fill" | "chat-right-heart-fill" | "chat-right-heart" | "chat-right-quote-fill" | "chat-right-quote" | "chat-right-text-fill" | "chat-right-text" | "chat-right" | "chat-square-dots-fill" | "chat-square-dots" | "chat-square-fill" | "chat-square-heart-fill" | "chat-square-heart" | "chat-square-quote-fill" | "chat-square-quote" | "chat-square-text-fill" | "chat-square-text" | "chat-square" | "chat-text-fill" | "chat-text" | "chat" | "check-all" | "check-circle-fill" | "check-circle" | "check-lg" | "check-square-fill" | "check-square" | "check" | "check2-all" | "check2-circle" | "check2-square" | "check2" | "chevron-bar-contract" | "chevron-bar-down" | "chevron-bar-expand" | "chevron-bar-left" | "chevron-bar-right" | "chevron-bar-up" | "chevron-compact-down" | "chevron-compact-left" | "chevron-compact-right" | "chevron-compact-up" | "chevron-contract" | "chevron-double-down" | "chevron-double-left" | "chevron-double-right" | "chevron-double-up" | "chevron-down" | "chevron-expand" | "chevron-left" | "chevron-right" | "chevron-up" | "circle-fill" | "circle-half" | "circle-square" | "circle" | "claude" | "clipboard-check-fill" | "clipboard-check" | "clipboard-data-fill" | "clipboard-data" | "clipboard-fill" | "clipboard-heart-fill" | "clipboard-heart" | "clipboard-minus-fill" | "clipboard-minus" | "clipboard-plus-fill" | "clipboard-plus" | "clipboard-pulse" | "clipboard-x-fill" | "clipboard-x" | "clipboard" | "clipboard2-check-fill" | "clipboard2-check" | "clipboard2-data-fill" | "clipboard2-data" | "clipboard2-fill" | "clipboard2-heart-fill" | "clipboard2-heart" | "clipboard2-minus-fill" | "clipboard2-minus" | "clipboard2-plus-fill" | "clipboard2-plus" | "clipboard2-pulse-fill" | "clipboard2-pulse" | "clipboard2-x-fill" | "clipboard2-x" | "clipboard2" | "clock-fill" | "clock-history" | "clock" | "cloud-arrow-down-fill" | "cloud-arrow-down" | "cloud-arrow-up-fill" | "cloud-arrow-up" | "cloud-check-fill" | "cloud-check" | "cloud-download-fill" | "cloud-download" | "cloud-drizzle-fill" | "cloud-drizzle" | "cloud-fill" | "cloud-fog-fill" | "cloud-fog" | "cloud-fog2-fill" | "cloud-fog2" | "cloud-hail-fill" | "cloud-hail" | "cloud-haze-fill" | "cloud-haze" | "cloud-haze2-fill" | "cloud-haze2" | "cloud-lightning-fill" | "cloud-lightning-rain-fill" | "cloud-lightning-rain" | "cloud-lightning" | "cloud-minus-fill" | "cloud-minus" | "cloud-moon-fill" | "cloud-moon" | "cloud-plus-fill" | "cloud-plus" | "cloud-rain-fill" | "cloud-rain-heavy-fill" | "cloud-rain-heavy" | "cloud-rain" | "cloud-slash-fill" | "cloud-slash" | "cloud-sleet-fill" | "cloud-sleet" | "cloud-snow-fill" | "cloud-snow" | "cloud-sun-fill" | "cloud-sun" | "cloud-upload-fill" | "cloud-upload" | "cloud" | "clouds-fill" | "clouds" | "cloudy-fill" | "cloudy" | "code-slash" | "code-square" | "code" | "coin" | "collection-fill" | "collection-play-fill" | "collection-play" | "collection" | "columns-gap" | "columns" | "command" | "compass-fill" | "compass" | "cone-striped" | "cone" | "controller" | "cookie" | "copy" | "cpu-fill" | "cpu" | "credit-card-2-back-fill" | "credit-card-2-back" | "credit-card-2-front-fill" | "credit-card-2-front" | "credit-card-fill" | "credit-card" | "crop" | "crosshair" | "crosshair2" | "css" | "cup-fill" | "cup-hot-fill" | "cup-hot" | "cup-straw" | "cup" | "currency-bitcoin" | "currency-dollar" | "currency-euro" | "currency-exchange" | "currency-pound" | "currency-rupee" | "currency-yen" | "cursor-fill" | "cursor-text" | "cursor" | "dash-circle-dotted" | "dash-circle-fill" | "dash-circle" | "dash-lg" | "dash-square-dotted" | "dash-square-fill" | "dash-square" | "dash" | "database-add" | "database-check" | "database-dash" | "database-down" | "database-exclamation" | "database-fill-add" | "database-fill-check" | "database-fill-dash" | "database-fill-down" | "database-fill-exclamation" | "database-fill-gear" | "database-fill-lock" | "database-fill-slash" | "database-fill-up" | "database-fill-x" | "database-fill" | "database-gear" | "database-lock" | "database-slash" | "database-up" | "database-x" | "database" | "device-hdd-fill" | "device-hdd" | "device-ssd-fill" | "device-ssd" | "diagram-2-fill" | "diagram-2" | "diagram-3-fill" | "diagram-3" | "diamond-fill" | "diamond-half" | "diamond" | "dice-1-fill" | "dice-1" | "dice-2-fill" | "dice-2" | "dice-3-fill" | "dice-3" | "dice-4-fill" | "dice-4" | "dice-5-fill" | "dice-5" | "dice-6-fill" | "dice-6" | "disc-fill" | "disc" | "discord" | "display-fill" | "display" | "displayport-fill" | "displayport" | "distribute-horizontal" | "distribute-vertical" | "door-closed-fill" | "door-closed" | "door-open-fill" | "door-open" | "dot" | "download" | "dpad-fill" | "dpad" | "dribbble" | "dropbox" | "droplet-fill" | "droplet-half" | "droplet" | "duffle-fill" | "duffle" | "ear-fill" | "ear" | "earbuds" | "easel-fill" | "easel" | "easel2-fill" | "easel2" | "easel3-fill" | "easel3" | "egg-fill" | "egg-fried" | "egg" | "eject-fill" | "eject" | "emoji-angry-fill" | "emoji-angry" | "emoji-astonished-fill" | "emoji-astonished" | "emoji-dizzy-fill" | "emoji-dizzy" | "emoji-expressionless-fill" | "emoji-expressionless" | "emoji-frown-fill" | "emoji-frown" | "emoji-grimace-fill" | "emoji-grimace" | "emoji-grin-fill" | "emoji-grin" | "emoji-heart-eyes-fill" | "emoji-heart-eyes" | "emoji-kiss-fill" | "emoji-kiss" | "emoji-laughing-fill" | "emoji-laughing" | "emoji-neutral-fill" | "emoji-neutral" | "emoji-smile-fill" | "emoji-smile-upside-down-fill" | "emoji-smile-upside-down" | "emoji-smile" | "emoji-sunglasses-fill" | "emoji-sunglasses" | "emoji-surprise-fill" | "emoji-surprise" | "emoji-tear-fill" | "emoji-tear" | "emoji-wink-fill" | "emoji-wink" | "envelope-arrow-down-fill" | "envelope-arrow-down" | "envelope-arrow-up-fill" | "envelope-arrow-up" | "envelope-at-fill" | "envelope-at" | "envelope-check-fill" | "envelope-check" | "envelope-dash-fill" | "envelope-dash" | "envelope-exclamation-fill" | "envelope-exclamation" | "envelope-fill" | "envelope-heart-fill" | "envelope-heart" | "envelope-open-fill" | "envelope-open-heart-fill" | "envelope-open-heart" | "envelope-open" | "envelope-paper-fill" | "envelope-paper-heart-fill" | "envelope-paper-heart" | "envelope-paper" | "envelope-plus-fill" | "envelope-plus" | "envelope-slash-fill" | "envelope-slash" | "envelope-x-fill" | "envelope-x" | "envelope" | "eraser-fill" | "eraser" | "escape" | "ethernet" | "ev-front-fill" | "ev-front" | "ev-station-fill" | "ev-station" | "exclamation-circle-fill" | "exclamation-circle" | "exclamation-diamond-fill" | "exclamation-diamond" | "exclamation-lg" | "exclamation-octagon-fill" | "exclamation-octagon" | "exclamation-square-fill" | "exclamation-square" | "exclamation-triangle-fill" | "exclamation-triangle" | "exclamation" | "exclude" | "explicit-fill" | "explicit" | "exposure" | "eye-fill" | "eye-slash-fill" | "eye-slash" | "eye" | "eyedropper" | "eyeglasses" | "facebook" | "fan" | "fast-forward-btn-fill" | "fast-forward-btn" | "fast-forward-circle-fill" | "fast-forward-circle" | "fast-forward-fill" | "fast-forward" | "feather" | "feather2" | "file-arrow-down-fill" | "file-arrow-down" | "file-arrow-up-fill" | "file-arrow-up" | "file-bar-graph-fill" | "file-bar-graph" | "file-binary-fill" | "file-binary" | "file-break-fill" | "file-break" | "file-check-fill" | "file-check" | "file-code-fill" | "file-code" | "file-diff-fill" | "file-diff" | "file-earmark-arrow-down-fill" | "file-earmark-arrow-down" | "file-earmark-arrow-up-fill" | "file-earmark-arrow-up" | "file-earmark-bar-graph-fill" | "file-earmark-bar-graph" | "file-earmark-binary-fill" | "file-earmark-binary" | "file-earmark-break-fill" | "file-earmark-break" | "file-earmark-check-fill" | "file-earmark-check" | "file-earmark-code-fill" | "file-earmark-code" | "file-earmark-diff-fill" | "file-earmark-diff" | "file-earmark-easel-fill" | "file-earmark-easel" | "file-earmark-excel-fill" | "file-earmark-excel" | "file-earmark-fill" | "file-earmark-font-fill" | "file-earmark-font" | "file-earmark-image-fill" | "file-earmark-image" | "file-earmark-lock-fill" | "file-earmark-lock" | "file-earmark-lock2-fill" | "file-earmark-lock2" | "file-earmark-medical-fill" | "file-earmark-medical" | "file-earmark-minus-fill" | "file-earmark-minus" | "file-earmark-music-fill" | "file-earmark-music" | "file-earmark-pdf-fill" | "file-earmark-pdf" | "file-earmark-person-fill" | "file-earmark-person" | "file-earmark-play-fill" | "file-earmark-play" | "file-earmark-plus-fill" | "file-earmark-plus" | "file-earmark-post-fill" | "file-earmark-post" | "file-earmark-ppt-fill" | "file-earmark-ppt" | "file-earmark-richtext-fill" | "file-earmark-richtext" | "file-earmark-ruled-fill" | "file-earmark-ruled" | "file-earmark-slides-fill" | "file-earmark-slides" | "file-earmark-spreadsheet-fill" | "file-earmark-spreadsheet" | "file-earmark-text-fill" | "file-earmark-text" | "file-earmark-word-fill" | "file-earmark-word" | "file-earmark-x-fill" | "file-earmark-x" | "file-earmark-zip-fill" | "file-earmark-zip" | "file-earmark" | "file-easel-fill" | "file-easel" | "file-excel-fill" | "file-excel" | "file-fill" | "file-font-fill" | "file-font" | "file-image-fill" | "file-image" | "file-lock-fill" | "file-lock" | "file-lock2-fill" | "file-lock2" | "file-medical-fill" | "file-medical" | "file-minus-fill" | "file-minus" | "file-music-fill" | "file-music" | "file-pdf-fill" | "file-pdf" | "file-person-fill" | "file-person" | "file-play-fill" | "file-play" | "file-plus-fill" | "file-plus" | "file-post-fill" | "file-post" | "file-ppt-fill" | "file-ppt" | "file-richtext-fill" | "file-richtext" | "file-ruled-fill" | "file-ruled" | "file-slides-fill" | "file-slides" | "file-spreadsheet-fill" | "file-spreadsheet" | "file-text-fill" | "file-text" | "file-word-fill" | "file-word" | "file-x-fill" | "file-x" | "file-zip-fill" | "file-zip" | "file" | "files-alt" | "files" | "filetype-aac" | "filetype-ai" | "filetype-bmp" | "filetype-cs" | "filetype-css" | "filetype-csv" | "filetype-doc" | "filetype-docx" | "filetype-exe" | "filetype-gif" | "filetype-heic" | "filetype-html" | "filetype-java" | "filetype-jpg" | "filetype-js" | "filetype-json" | "filetype-jsx" | "filetype-key" | "filetype-m4p" | "filetype-md" | "filetype-mdx" | "filetype-mov" | "filetype-mp3" | "filetype-mp4" | "filetype-otf" | "filetype-pdf" | "filetype-php" | "filetype-png" | "filetype-ppt" | "filetype-pptx" | "filetype-psd" | "filetype-py" | "filetype-raw" | "filetype-rb" | "filetype-sass" | "filetype-scss" | "filetype-sh" | "filetype-sql" | "filetype-svg" | "filetype-tiff" | "filetype-tsx" | "filetype-ttf" | "filetype-txt" | "filetype-wav" | "filetype-woff" | "filetype-xls" | "filetype-xlsx" | "filetype-xml" | "filetype-yml" | "film" | "filter-circle-fill" | "filter-circle" | "filter-left" | "filter-right" | "filter-square-fill" | "filter-square" | "filter" | "fingerprint" | "fire" | "flag-fill" | "flag" | "flask-fill" | "flask-florence-fill" | "flask-florence" | "flask" | "floppy-fill" | "floppy" | "floppy2-fill" | "floppy2" | "flower1" | "flower2" | "flower3" | "folder-check" | "folder-fill" | "folder-minus" | "folder-plus" | "folder-symlink-fill" | "folder-symlink" | "folder-x" | "folder" | "folder2-open" | "folder2" | "fonts" | "fork-knife" | "forward-fill" | "forward" | "front" | "fuel-pump-diesel-fill" | "fuel-pump-diesel" | "fuel-pump-fill" | "fuel-pump" | "fullscreen-exit" | "fullscreen" | "funnel-fill" | "funnel" | "gear-fill" | "gear-wide-connected" | "gear-wide" | "gear" | "gem" | "gender-ambiguous" | "gender-female" | "gender-male" | "gender-neuter" | "gender-trans" | "geo-alt-fill" | "geo-alt" | "geo-fill" | "geo" | "gift-fill" | "gift" | "git" | "github" | "gitlab" | "globe-americas-fill" | "globe-americas" | "globe-asia-australia-fill" | "globe-asia-australia" | "globe-central-south-asia-fill" | "globe-central-south-asia" | "globe-europe-africa-fill" | "globe-europe-africa" | "globe" | "globe2" | "google-play" | "google" | "gpu-card" | "graph-down-arrow" | "graph-down" | "graph-up-arrow" | "graph-up" | "grid-1x2-fill" | "grid-1x2" | "grid-3x2-gap-fill" | "grid-3x2-gap" | "grid-3x2" | "grid-3x3-gap-fill" | "grid-3x3-gap" | "grid-3x3" | "grid-fill" | "grid" | "grip-horizontal" | "grip-vertical" | "h-circle-fill" | "h-circle" | "h-square-fill" | "h-square" | "hammer" | "hand-index-fill" | "hand-index-thumb-fill" | "hand-index-thumb" | "hand-index" | "hand-thumbs-down-fill" | "hand-thumbs-down" | "hand-thumbs-up-fill" | "hand-thumbs-up" | "handbag-fill" | "handbag" | "hash" | "hdd-fill" | "hdd-network-fill" | "hdd-network" | "hdd-rack-fill" | "hdd-rack" | "hdd-stack-fill" | "hdd-stack" | "hdd" | "hdmi-fill" | "hdmi" | "headphones" | "headset-vr" | "headset" | "heart-arrow" | "heart-fill" | "heart-half" | "heart-pulse-fill" | "heart-pulse" | "heart" | "heartbreak-fill" | "heartbreak" | "hearts" | "heptagon-fill" | "heptagon-half" | "heptagon" | "hexagon-fill" | "hexagon-half" | "hexagon" | "highlighter" | "highlights" | "hospital-fill" | "hospital" | "hourglass-bottom" | "hourglass-split" | "hourglass-top" | "hourglass" | "house-add-fill" | "house-add" | "house-check-fill" | "house-check" | "house-dash-fill" | "house-dash" | "house-door-fill" | "house-door" | "house-down-fill" | "house-down" | "house-exclamation-fill" | "house-exclamation" | "house-fill" | "house-gear-fill" | "house-gear" | "house-heart-fill" | "house-heart" | "house-lock-fill" | "house-lock" | "house-slash-fill" | "house-slash" | "house-up-fill" | "house-up" | "house-x-fill" | "house-x" | "house" | "houses-fill" | "houses" | "hr" | "hurricane" | "hypnotize" | "image-alt" | "image-fill" | "image" | "images" | "inbox-fill" | "inbox" | "inboxes-fill" | "inboxes" | "incognito" | "indent" | "infinity" | "info-circle-fill" | "info-circle" | "info-lg" | "info-square-fill" | "info-square" | "info" | "input-cursor-text" | "input-cursor" | "instagram" | "intersect" | "javascript" | "journal-album" | "journal-arrow-down" | "journal-arrow-up" | "journal-bookmark-fill" | "journal-bookmark" | "journal-check" | "journal-code" | "journal-medical" | "journal-minus" | "journal-plus" | "journal-richtext" | "journal-text" | "journal-x" | "journal" | "journals" | "joystick" | "justify-left" | "justify-right" | "justify" | "kanban-fill" | "kanban" | "key-fill" | "key" | "keyboard-fill" | "keyboard" | "ladder" | "lamp-fill" | "lamp" | "laptop-fill" | "laptop" | "layer-backward" | "layer-forward" | "layers-fill" | "layers-half" | "layers" | "layout-sidebar-inset-reverse" | "layout-sidebar-inset" | "layout-sidebar-reverse" | "layout-sidebar" | "layout-split" | "layout-text-sidebar-reverse" | "layout-text-sidebar" | "layout-text-window-reverse" | "layout-text-window" | "layout-three-columns" | "layout-wtf" | "leaf-fill" | "leaf" | "life-preserver" | "lightbulb-fill" | "lightbulb-off-fill" | "lightbulb-off" | "lightbulb" | "lightning-charge-fill" | "lightning-charge" | "lightning-fill" | "lightning" | "line" | "link-45deg" | "link" | "linkedin" | "list-check" | "list-columns-reverse" | "list-columns" | "list-nested" | "list-ol" | "list-stars" | "list-task" | "list-ul" | "list" | "lock-fill" | "lock" | "luggage-fill" | "luggage" | "lungs-fill" | "lungs" | "magic" | "magnet-fill" | "magnet" | "mailbox-flag" | "mailbox" | "mailbox2-flag" | "mailbox2" | "map-fill" | "map" | "markdown-fill" | "markdown" | "marker-tip" | "mask" | "mastodon" | "measuring-cup-fill" | "measuring-cup" | "medium" | "megaphone-fill" | "megaphone" | "memory" | "menu-app-fill" | "menu-app" | "menu-button-fill" | "menu-button-wide-fill" | "menu-button-wide" | "menu-button" | "menu-down" | "menu-up" | "messenger" | "meta" | "mic-fill" | "mic-mute-fill" | "mic-mute" | "mic" | "microsoft-teams" | "microsoft" | "minecart-loaded" | "minecart" | "modem-fill" | "modem" | "moisture" | "moon-fill" | "moon-stars-fill" | "moon-stars" | "moon" | "mortarboard-fill" | "mortarboard" | "motherboard-fill" | "motherboard" | "mouse-fill" | "mouse" | "mouse2-fill" | "mouse2" | "mouse3-fill" | "mouse3" | "music-note-beamed" | "music-note-list" | "music-note" | "music-player-fill" | "music-player" | "newspaper" | "nintendo-switch" | "node-minus-fill" | "node-minus" | "node-plus-fill" | "node-plus" | "noise-reduction" | "nut-fill" | "nut" | "nvidia" | "nvme-fill" | "nvme" | "octagon-fill" | "octagon-half" | "octagon" | "openai" | "opencollective" | "optical-audio-fill" | "optical-audio" | "option" | "outlet" | "p-circle-fill" | "p-circle" | "p-square-fill" | "p-square" | "paint-bucket" | "palette-fill" | "palette" | "palette2" | "paperclip" | "paragraph" | "pass-fill" | "pass" | "passport-fill" | "passport" | "patch-check-fill" | "patch-check" | "patch-exclamation-fill" | "patch-exclamation" | "patch-minus-fill" | "patch-minus" | "patch-plus-fill" | "patch-plus" | "patch-question-fill" | "patch-question" | "pause-btn-fill" | "pause-btn" | "pause-circle-fill" | "pause-circle" | "pause-fill" | "pause" | "paypal" | "pc-display-horizontal" | "pc-display" | "pc-horizontal" | "pc" | "pci-card-network" | "pci-card-sound" | "pci-card" | "peace-fill" | "peace" | "pen-fill" | "pen" | "pencil-fill" | "pencil-square" | "pencil" | "pentagon-fill" | "pentagon-half" | "pentagon" | "people-fill" | "people" | "percent" | "perplexity" | "person-add" | "person-arms-up" | "person-badge-fill" | "person-badge" | "person-bounding-box" | "person-check-fill" | "person-check" | "person-circle" | "person-dash-fill" | "person-dash" | "person-down" | "person-exclamation" | "person-fill-add" | "person-fill-check" | "person-fill-dash" | "person-fill-down" | "person-fill-exclamation" | "person-fill-gear" | "person-fill-lock" | "person-fill-slash" | "person-fill-up" | "person-fill-x" | "person-fill" | "person-gear" | "person-heart" | "person-hearts" | "person-lines-fill" | "person-lock" | "person-plus-fill" | "person-plus" | "person-raised-hand" | "person-rolodex" | "person-slash" | "person-square" | "person-standing-dress" | "person-standing" | "person-up" | "person-vcard-fill" | "person-vcard" | "person-video" | "person-video2" | "person-video3" | "person-walking" | "person-wheelchair" | "person-workspace" | "person-x-fill" | "person-x" | "person" | "phone-fill" | "phone-flip" | "phone-landscape-fill" | "phone-landscape" | "phone-vibrate-fill" | "phone-vibrate" | "phone" | "pie-chart-fill" | "pie-chart" | "piggy-bank-fill" | "piggy-bank" | "pin-angle-fill" | "pin-angle" | "pin-fill" | "pin-map-fill" | "pin-map" | "pin" | "pinterest" | "pip-fill" | "pip" | "play-btn-fill" | "play-btn" | "play-circle-fill" | "play-circle" | "play-fill" | "play" | "playstation" | "plug-fill" | "plug" | "plugin" | "plus-circle-dotted" | "plus-circle-fill" | "plus-circle" | "plus-lg" | "plus-slash-minus" | "plus-square-dotted" | "plus-square-fill" | "plus-square" | "plus" | "postage-fill" | "postage-heart-fill" | "postage-heart" | "postage" | "postcard-fill" | "postcard-heart-fill" | "postcard-heart" | "postcard" | "power" | "prescription" | "prescription2" | "printer-fill" | "printer" | "projector-fill" | "projector" | "puzzle-fill" | "puzzle" | "qr-code-scan" | "qr-code" | "question-circle-fill" | "question-circle" | "question-diamond-fill" | "question-diamond" | "question-lg" | "question-octagon-fill" | "question-octagon" | "question-square-fill" | "question-square" | "question" | "quora" | "quote" | "r-circle-fill" | "r-circle" | "r-square-fill" | "r-square" | "radar" | "radioactive" | "rainbow" | "receipt-cutoff" | "receipt" | "reception-0" | "reception-1" | "reception-2" | "reception-3" | "reception-4" | "record-btn-fill" | "record-btn" | "record-circle-fill" | "record-circle" | "record-fill" | "record" | "record2-fill" | "record2" | "recycle" | "reddit" | "regex" | "repeat-1" | "repeat" | "reply-all-fill" | "reply-all" | "reply-fill" | "reply" | "rewind-btn-fill" | "rewind-btn" | "rewind-circle-fill" | "rewind-circle" | "rewind-fill" | "rewind" | "robot" | "rocket-fill" | "rocket-takeoff-fill" | "rocket-takeoff" | "rocket" | "router-fill" | "router" | "rss-fill" | "rss" | "rulers" | "safe-fill" | "safe" | "safe2-fill" | "safe2" | "save-fill" | "save" | "save2-fill" | "save2" | "scissors" | "scooter" | "screwdriver" | "sd-card-fill" | "sd-card" | "search-heart-fill" | "search-heart" | "search" | "segmented-nav" | "send-arrow-down-fill" | "send-arrow-down" | "send-arrow-up-fill" | "send-arrow-up" | "send-check-fill" | "send-check" | "send-dash-fill" | "send-dash" | "send-exclamation-fill" | "send-exclamation" | "send-fill" | "send-plus-fill" | "send-plus" | "send-slash-fill" | "send-slash" | "send-x-fill" | "send-x" | "send" | "server" | "shadows" | "share-fill" | "share" | "shield-check" | "shield-exclamation" | "shield-fill-check" | "shield-fill-exclamation" | "shield-fill-minus" | "shield-fill-plus" | "shield-fill-x" | "shield-fill" | "shield-lock-fill" | "shield-lock" | "shield-minus" | "shield-plus" | "shield-shaded" | "shield-slash-fill" | "shield-slash" | "shield-x" | "shield" | "shift-fill" | "shift" | "shop-window" | "shop" | "shuffle" | "sign-dead-end-fill" | "sign-dead-end" | "sign-do-not-enter-fill" | "sign-do-not-enter" | "sign-intersection-fill" | "sign-intersection-side-fill" | "sign-intersection-side" | "sign-intersection-t-fill" | "sign-intersection-t" | "sign-intersection-y-fill" | "sign-intersection-y" | "sign-intersection" | "sign-merge-left-fill" | "sign-merge-left" | "sign-merge-right-fill" | "sign-merge-right" | "sign-no-left-turn-fill" | "sign-no-left-turn" | "sign-no-parking-fill" | "sign-no-parking" | "sign-no-right-turn-fill" | "sign-no-right-turn" | "sign-railroad-fill" | "sign-railroad" | "sign-stop-fill" | "sign-stop-lights-fill" | "sign-stop-lights" | "sign-stop" | "sign-turn-left-fill" | "sign-turn-left" | "sign-turn-right-fill" | "sign-turn-right" | "sign-turn-slight-left-fill" | "sign-turn-slight-left" | "sign-turn-slight-right-fill" | "sign-turn-slight-right" | "sign-yield-fill" | "sign-yield" | "signal" | "signpost-2-fill" | "signpost-2" | "signpost-fill" | "signpost-split-fill" | "signpost-split" | "signpost" | "sim-fill" | "sim-slash-fill" | "sim-slash" | "sim" | "sina-weibo" | "skip-backward-btn-fill" | "skip-backward-btn" | "skip-backward-circle-fill" | "skip-backward-circle" | "skip-backward-fill" | "skip-backward" | "skip-end-btn-fill" | "skip-end-btn" | "skip-end-circle-fill" | "skip-end-circle" | "skip-end-fill" | "skip-end" | "skip-forward-btn-fill" | "skip-forward-btn" | "skip-forward-circle-fill" | "skip-forward-circle" | "skip-forward-fill" | "skip-forward" | "skip-start-btn-fill" | "skip-start-btn" | "skip-start-circle-fill" | "skip-start-circle" | "skip-start-fill" | "skip-start" | "skype" | "slack" | "slash-circle-fill" | "slash-circle" | "slash-lg" | "slash-square-fill" | "slash-square" | "slash" | "sliders" | "sliders2-vertical" | "sliders2" | "smartwatch" | "snapchat" | "snow" | "snow2" | "snow3" | "sort-alpha-down-alt" | "sort-alpha-down" | "sort-alpha-up-alt" | "sort-alpha-up" | "sort-down-alt" | "sort-down" | "sort-numeric-down-alt" | "sort-numeric-down" | "sort-numeric-up-alt" | "sort-numeric-up" | "sort-up-alt" | "sort-up" | "soundwave" | "sourceforge" | "speaker-fill" | "speaker" | "speedometer" | "speedometer2" | "spellcheck" | "spotify" | "square-fill" | "square-half" | "square" | "stack-overflow" | "stack" | "star-fill" | "star-half" | "star" | "stars" | "steam" | "stickies-fill" | "stickies" | "sticky-fill" | "sticky" | "stop-btn-fill" | "stop-btn" | "stop-circle-fill" | "stop-circle" | "stop-fill" | "stop" | "stoplights-fill" | "stoplights" | "stopwatch-fill" | "stopwatch" | "strava" | "stripe" | "subscript" | "substack" | "subtract" | "suit-club-fill" | "suit-club" | "suit-diamond-fill" | "suit-diamond" | "suit-heart-fill" | "suit-heart" | "suit-spade-fill" | "suit-spade" | "suitcase-fill" | "suitcase-lg-fill" | "suitcase-lg" | "suitcase" | "suitcase2-fill" | "suitcase2" | "sun-fill" | "sun" | "sunglasses" | "sunrise-fill" | "sunrise" | "sunset-fill" | "sunset" | "superscript" | "symmetry-horizontal" | "symmetry-vertical" | "table" | "tablet-fill" | "tablet-landscape-fill" | "tablet-landscape" | "tablet" | "tag-fill" | "tag" | "tags-fill" | "tags" | "taxi-front-fill" | "taxi-front" | "telegram" | "telephone-fill" | "telephone-forward-fill" | "telephone-forward" | "telephone-inbound-fill" | "telephone-inbound" | "telephone-minus-fill" | "telephone-minus" | "telephone-outbound-fill" | "telephone-outbound" | "telephone-plus-fill" | "telephone-plus" | "telephone-x-fill" | "telephone-x" | "telephone" | "tencent-qq" | "terminal-dash" | "terminal-fill" | "terminal-plus" | "terminal-split" | "terminal-x" | "terminal" | "text-center" | "text-indent-left" | "text-indent-right" | "text-left" | "text-paragraph" | "text-right" | "text-wrap" | "textarea-resize" | "textarea-t" | "textarea" | "thermometer-half" | "thermometer-high" | "thermometer-low" | "thermometer-snow" | "thermometer-sun" | "thermometer" | "threads-fill" | "threads" | "three-dots-vertical" | "three-dots" | "thunderbolt-fill" | "thunderbolt" | "ticket-detailed-fill" | "ticket-detailed" | "ticket-fill" | "ticket-perforated-fill" | "ticket-perforated" | "ticket" | "tiktok" | "toggle-off" | "toggle-on" | "toggle2-off" | "toggle2-on" | "toggles" | "toggles2" | "tools" | "tornado" | "train-freight-front-fill" | "train-freight-front" | "train-front-fill" | "train-front" | "train-lightrail-front-fill" | "train-lightrail-front" | "translate" | "transparency" | "trash-fill" | "trash" | "trash2-fill" | "trash2" | "trash3-fill" | "trash3" | "tree-fill" | "tree" | "trello" | "triangle-fill" | "triangle-half" | "triangle" | "trophy-fill" | "trophy" | "tropical-storm" | "truck-flatbed" | "truck-front-fill" | "truck-front" | "truck" | "tsunami" | "tux" | "tv-fill" | "tv" | "twitch" | "twitter-x" | "twitter" | "type-bold" | "type-h1" | "type-h2" | "type-h3" | "type-h4" | "type-h5" | "type-h6" | "type-italic" | "type-strikethrough" | "type-underline" | "type" | "typescript" | "ubuntu" | "ui-checks-grid" | "ui-checks" | "ui-radios-grid" | "ui-radios" | "umbrella-fill" | "umbrella" | "unindent" | "union" | "unity" | "universal-access-circle" | "universal-access" | "unlock-fill" | "unlock" | "unlock2-fill" | "unlock2" | "upc-scan" | "upc" | "upload" | "usb-c-fill" | "usb-c" | "usb-drive-fill" | "usb-drive" | "usb-fill" | "usb-micro-fill" | "usb-micro" | "usb-mini-fill" | "usb-mini" | "usb-plug-fill" | "usb-plug" | "usb-symbol" | "usb" | "valentine" | "valentine2" | "vector-pen" | "view-list" | "view-stacked" | "vignette" | "vimeo" | "vinyl-fill" | "vinyl" | "virus" | "virus2" | "voicemail" | "volume-down-fill" | "volume-down" | "volume-mute-fill" | "volume-mute" | "volume-off-fill" | "volume-off" | "volume-up-fill" | "volume-up" | "vr" | "wallet-fill" | "wallet" | "wallet2" | "watch" | "water" | "webcam-fill" | "webcam" | "wechat" | "whatsapp" | "wifi-1" | "wifi-2" | "wifi-off" | "wifi" | "wikipedia" | "wind" | "window-dash" | "window-desktop" | "window-dock" | "window-fullscreen" | "window-plus" | "window-sidebar" | "window-split" | "window-stack" | "window-x" | "window" | "windows" | "wordpress" | "wrench-adjustable-circle-fill" | "wrench-adjustable-circle" | "wrench-adjustable" | "wrench" | "x-circle-fill" | "x-circle" | "x-diamond-fill" | "x-diamond" | "x-lg" | "x-octagon-fill" | "x-octagon" | "x-square-fill" | "x-square" | "x" | "xbox" | "yelp" | "yin-yang" | "youtube" | "zoom-in" | "zoom-out";
|
|
175
|
+
export type DebounceOptions<Result> = {
|
|
176
|
+
isImmediate?: boolean;
|
|
177
|
+
maxWait?: number;
|
|
178
|
+
callback?: (data: Result) => void;
|
|
179
|
+
};
|
|
180
|
+
export interface DebouncedFunction<Args extends unknown[], F extends (...args: Args) => unknown> {
|
|
181
|
+
(this: ThisParameterType<F>, ...args: Args & Parameters<F>): Promise<ReturnType<F>>;
|
|
182
|
+
cancel: (reason?: unknown) => void;
|
|
183
|
+
}
|
|
184
|
+
export function debounce<Args extends unknown[], F extends (...args: Args) => unknown>(func: F, waitMilliseconds?: number, options?: DebounceOptions<ReturnType<F>>): DebouncedFunction<Args, F>;
|
|
185
|
+
export type EventListener<TData extends AnObject = {}, TResult = void> = (data?: TData) => TResult;
|
|
186
|
+
export class Eventer<TData = {}, TResult = void> {
|
|
187
|
+
debounceMs: number;
|
|
188
|
+
constructor(debounceMs?: number);
|
|
189
|
+
register(listener: EventListener<TData, TResult>, abortSignal?: AbortSignal): void;
|
|
190
|
+
unregister(listener: EventListener<TData, TResult>): void;
|
|
191
|
+
raise(data: TData): Promise<TResult[]>;
|
|
192
|
+
}
|
|
193
|
+
export type DomEventName = keyof HTMLElementEventMap;
|
|
194
|
+
export type DomEventData = HTMLElementEventMap[DomEventName];
|
|
195
|
+
export class DomEventAction extends Eventer<DomEventData, void> {
|
|
196
|
+
constructor(target: HTMLElement, eventName: DomEventName);
|
|
197
|
+
}
|
|
198
|
+
export class Awaiter {
|
|
199
|
+
constructor();
|
|
200
|
+
setReady: () => void;
|
|
201
|
+
wait(timeoutMs?: number): Promise<void>;
|
|
202
|
+
}
|
|
203
|
+
export type LookupValue = string | number;
|
|
204
|
+
export type AnObject = {
|
|
205
|
+
[key: string]: any;
|
|
206
|
+
};
|
|
207
|
+
export type Constructable<T extends AnObject = {}> = {
|
|
208
|
+
new (...args: any[]): T;
|
|
209
|
+
};
|
|
210
|
+
export type ClassType<T extends AnObject = {}> = Function & Constructable<T>;
|
|
211
|
+
export type CreatorFunc = () => unknown;
|
|
212
|
+
export type PropertyName<T> = Extract<keyof T, string>;
|
|
213
|
+
export type Action<TResult = void, TParam = void> = (p?: TParam) => TResult;
|
|
214
|
+
export type AsyncAction<TResult = void, TParam = void> = Action<Promise<TResult>, TParam>;
|
|
215
|
+
export type OpResult<TData = void> = {
|
|
216
|
+
success: boolean;
|
|
217
|
+
message?: string;
|
|
218
|
+
data?: TData;
|
|
219
|
+
};
|
|
220
|
+
export type AsyncOpResult<TData = void> = Promise<OpResult<TData>>;
|
|
221
|
+
export type Operation<TResult = void, TParam = void> = Action<OpResult<TResult>, TParam>;
|
|
222
|
+
export type AsyncOperation<TResult = void, TParam = void> = Action<AsyncOpResult<TResult>, TParam>;
|
|
223
|
+
export interface ILookup {
|
|
224
|
+
key?: LookupValue;
|
|
225
|
+
title: string;
|
|
226
|
+
}
|
|
227
|
+
export interface IHasGroup {
|
|
228
|
+
group: LookupValue;
|
|
229
|
+
}
|
|
230
|
+
export type HasGroup<T> = T & IHasGroup;
|
|
231
|
+
export type Groupped<T> = {
|
|
232
|
+
groups: ILookup[];
|
|
233
|
+
items: HasGroup<T>;
|
|
234
|
+
};
|
|
235
|
+
export type Keyed<T> = T & {
|
|
236
|
+
key: string;
|
|
237
|
+
};
|
|
238
|
+
export type IdValue<T> = {
|
|
239
|
+
id: number;
|
|
240
|
+
value: T;
|
|
241
|
+
};
|
|
242
|
+
export type SelfParent<T> = T & {
|
|
243
|
+
children?: SelfParent<T>[];
|
|
244
|
+
};
|
|
245
|
+
export interface IOrderable {
|
|
246
|
+
order?: number;
|
|
247
|
+
}
|
|
248
|
+
export type PropChangeInfo = {
|
|
249
|
+
name: string;
|
|
250
|
+
newValue: any;
|
|
251
|
+
oldValue?: any;
|
|
252
|
+
};
|
|
253
|
+
export interface IObservable {
|
|
254
|
+
readonly onPropChanged: Eventer<PropChangeInfo, void>;
|
|
255
|
+
raisePropChanged(info: PropChangeInfo): void;
|
|
256
|
+
}
|
|
257
|
+
export type LookupLoader<TContext = void> = AsyncAction<ILookup[], TContext>;
|
|
258
|
+
export type LookupSource<Tcontext = void> = ILookup[] | LookupLoader<Tcontext>;
|
|
259
|
+
export type GrouppedLookupLoader<TContext = void> = AsyncAction<Groupped<ILookup>, TContext>;
|
|
260
|
+
export type ISimpleArray<T> = Iterable<T> & ArrayLike<T>;
|
|
261
|
+
export type LanguageCodes = 'tr' | 'en' | 'de' | 'fr' | 'es' | 'it' | 'ru' | 'zh' | 'ja' | 'ko' | 'ar' | 'pt';
|
|
262
|
+
export type Word = {
|
|
263
|
+
[lang in LanguageCodes]?: string;
|
|
264
|
+
};
|
|
265
|
+
export type Dictionary = {
|
|
266
|
+
[key: string]: Word;
|
|
267
|
+
};
|
|
268
|
+
export const LanguageNameMap: {
|
|
269
|
+
code: LanguageCodes;
|
|
270
|
+
name: string;
|
|
271
|
+
}[];
|
|
272
|
+
declare class DevLoggerClass {
|
|
273
|
+
constructor();
|
|
274
|
+
set enable(value: boolean);
|
|
275
|
+
get enable(): boolean;
|
|
276
|
+
log(...data: unknown[]): void;
|
|
277
|
+
isDev(): boolean;
|
|
278
|
+
}
|
|
279
|
+
export const DevLogger: DevLoggerClass;
|
|
280
|
+
export interface IButtonInfo {
|
|
281
|
+
text?: string;
|
|
282
|
+
tootip?: string;
|
|
283
|
+
iconClass?: string;
|
|
284
|
+
auth?: string;
|
|
285
|
+
disabled?: boolean | string;
|
|
286
|
+
dependedResource?: string;
|
|
287
|
+
btnClass?: string;
|
|
288
|
+
}
|
|
289
|
+
export interface IBag<T1, T2 = any, T3 = any> {
|
|
290
|
+
bag: T1;
|
|
291
|
+
bag2?: T2;
|
|
292
|
+
bag3?: T3;
|
|
293
|
+
}
|
|
294
|
+
export type HasDisabled<T> = T & {
|
|
295
|
+
disabled?: boolean;
|
|
296
|
+
disabledReason?: string;
|
|
297
|
+
};
|
|
298
|
+
export type HasActions<T> = T & {
|
|
299
|
+
actions?: Keyed<IButtonInfo>[];
|
|
300
|
+
};
|
|
301
|
+
export type IKeyedButtonInfo = Keyed<IButtonInfo>;
|
|
302
|
+
export type BaggedButtonElement = HTMLButtonElement & IBag<IButtonInfo>;
|
|
303
|
+
export type MenuItem = SelfParent<HasActions<IKeyedButtonInfo>>;
|
|
304
|
+
export type ButtonClickAction = (info: IButtonInfo) => void;
|
|
305
|
+
export type Orientation = 'horizonal' | 'vertical';
|
|
306
|
+
export type Alignment = 'start' | 'center' | 'end';
|
|
307
|
+
export type RibbonItemType = 'Button' | 'DropDownButton' | 'RadioButton' | 'Select' | 'Custom';
|
|
308
|
+
export type FormInputType = 'hidden' | 'readonly' | 'text' | 'textarea' | 'int' | 'double' | 'date' | 'datetime-local' | 'boolean' | 'switch' | 'password' | 'color' | 'intarr' | 'textarr' | HTMLElement;
|
|
309
|
+
export type DisplayClasses = 'danger' | 'warning' | 'success' | 'info';
|
|
310
|
+
export type MenuProperties = {
|
|
311
|
+
align?: Alignment;
|
|
312
|
+
gap?: string;
|
|
313
|
+
};
|
|
314
|
+
export type OptionMenuProperties = MenuProperties & {
|
|
315
|
+
iconClass?: string;
|
|
316
|
+
isRightPosition?: boolean;
|
|
317
|
+
};
|
|
318
|
+
export type OptionListProperties<T> = {
|
|
319
|
+
items: T[];
|
|
320
|
+
itemFactory?: (item: T) => HTMLElement;
|
|
321
|
+
iconClass?: string;
|
|
322
|
+
isRightPosition?: boolean;
|
|
323
|
+
tooltip?: string;
|
|
324
|
+
};
|
|
325
|
+
export type CustomOption = HTMLOptionElement & {
|
|
326
|
+
originalValue: LookupValue;
|
|
327
|
+
};
|
|
328
|
+
export interface IValidationRule {
|
|
329
|
+
isRequired?: boolean;
|
|
330
|
+
getError(value: any): string;
|
|
331
|
+
restrictElement?: (inp: HTMLElement) => void;
|
|
332
|
+
}
|
|
333
|
+
export interface IValueConverter<S = any, T = any> {
|
|
334
|
+
convertTo(source: S): T;
|
|
335
|
+
convertFrom(target: T): S;
|
|
336
|
+
}
|
|
337
|
+
export interface IFormItem {
|
|
338
|
+
key: string;
|
|
339
|
+
title: string;
|
|
340
|
+
gridProps?: {
|
|
341
|
+
row: number;
|
|
342
|
+
column: number;
|
|
343
|
+
colSpan?: number;
|
|
344
|
+
rowSpan?: number;
|
|
345
|
+
};
|
|
346
|
+
auth?: string;
|
|
347
|
+
}
|
|
348
|
+
export interface IFormInput extends IFormItem {
|
|
349
|
+
input: FormInputType;
|
|
350
|
+
displaySize?: 'full' | 'double';
|
|
351
|
+
readonlyInput?: HTMLElement;
|
|
352
|
+
rules?: IValidationRule[];
|
|
353
|
+
converter?: IValueConverter;
|
|
354
|
+
getter?: (inputElm: HTMLElement) => any;
|
|
355
|
+
setter?: (inputElm: HTMLElement, value: any) => void;
|
|
356
|
+
actions?: Array<FormInputActionInfo>;
|
|
357
|
+
}
|
|
358
|
+
export interface IFormInputGroup extends IFormItem {
|
|
359
|
+
items: IFormInput[];
|
|
360
|
+
auth?: string;
|
|
361
|
+
}
|
|
362
|
+
export type FormProperties = {
|
|
363
|
+
inputs: Array<IFormInput | IFormInputGroup>;
|
|
364
|
+
isReadonly?: boolean;
|
|
365
|
+
displayMode?: 'grid' | 'flow';
|
|
366
|
+
columns?: 'auto' | number;
|
|
367
|
+
minColSize?: number;
|
|
368
|
+
asyncValidation?: AsyncOperation<boolean, IForm>;
|
|
369
|
+
};
|
|
370
|
+
export interface IDataDetailComponent<T = {}> {
|
|
371
|
+
isReadonly: boolean;
|
|
372
|
+
setData(model: T): any;
|
|
373
|
+
getData(): T;
|
|
374
|
+
updateValue(key: Extract<keyof T, string> | string, value: any): boolean;
|
|
375
|
+
}
|
|
376
|
+
export interface IReadonlyComponent {
|
|
377
|
+
get readOnly(): boolean;
|
|
378
|
+
set readOnly(readonly: boolean);
|
|
379
|
+
}
|
|
380
|
+
export interface IValueComponent<T> {
|
|
381
|
+
set value(value: T);
|
|
382
|
+
get value(): T;
|
|
383
|
+
onValueChanged: Eventer<T, void>;
|
|
384
|
+
}
|
|
385
|
+
export interface IFormInputComponent<T> extends IValueComponent<T>, IReadonlyComponent {
|
|
386
|
+
}
|
|
387
|
+
export interface IFormLine {
|
|
388
|
+
item: IFormInput;
|
|
389
|
+
value: any;
|
|
390
|
+
element: HTMLElement;
|
|
391
|
+
getAction(key: string): HTMLButtonElement;
|
|
392
|
+
check(silent?: boolean): boolean;
|
|
393
|
+
getErrors(): string[];
|
|
394
|
+
setError(err: string): void;
|
|
395
|
+
refresh(clear?: boolean): void;
|
|
396
|
+
}
|
|
397
|
+
export interface IForm<T = {}> extends IDataDetailComponent<T> {
|
|
398
|
+
props: FormProperties;
|
|
399
|
+
check(silent: boolean): boolean;
|
|
400
|
+
getErrors(): string[] | null;
|
|
401
|
+
clearErrors(): void;
|
|
402
|
+
getInputElement(key: string): HTMLElement;
|
|
403
|
+
getInputAction(key: string, actionKey: string): HTMLButtonElement;
|
|
404
|
+
getLine(key: string): IFormLine;
|
|
405
|
+
}
|
|
406
|
+
export type FormInputActionInfo = {
|
|
407
|
+
key?: string;
|
|
408
|
+
iconClass: string;
|
|
409
|
+
tooltip: string;
|
|
410
|
+
onClick: Action<void, {
|
|
411
|
+
value: any;
|
|
412
|
+
input: HTMLElement;
|
|
413
|
+
form: IForm;
|
|
414
|
+
}>;
|
|
415
|
+
btnClass?: string;
|
|
416
|
+
hideWhenReadOnly?: boolean;
|
|
417
|
+
auth?: string;
|
|
418
|
+
};
|
|
419
|
+
export interface IRibbonTab extends IOrderable {
|
|
420
|
+
key: string;
|
|
421
|
+
text: string;
|
|
422
|
+
groups: IRibbonGroup[];
|
|
423
|
+
onDemand?: boolean;
|
|
424
|
+
color?: string;
|
|
425
|
+
}
|
|
426
|
+
export interface IRibbonGroup extends IOrderable {
|
|
427
|
+
key: string;
|
|
428
|
+
text: string;
|
|
429
|
+
items: IRibbonItem[];
|
|
430
|
+
}
|
|
431
|
+
export interface IRibbonItem extends IOrderable {
|
|
432
|
+
type: RibbonItemType;
|
|
433
|
+
key: string;
|
|
434
|
+
}
|
|
435
|
+
export interface IRibbonCmd extends IKeyedButtonInfo {
|
|
436
|
+
action: () => void;
|
|
437
|
+
active?: boolean;
|
|
438
|
+
}
|
|
439
|
+
export interface IRibbonItemButton extends IRibbonItem, IRibbonCmd {
|
|
440
|
+
type: 'Button';
|
|
441
|
+
size: 'small' | 'big';
|
|
442
|
+
}
|
|
443
|
+
export interface IRibbonItemDropDown extends IRibbonItem {
|
|
444
|
+
type: 'DropDownButton';
|
|
445
|
+
mainButton: string | IRibbonCmd;
|
|
446
|
+
children: IRibbonCmd[];
|
|
447
|
+
mainButtonIconClass?: string;
|
|
448
|
+
selectionProps?: {
|
|
449
|
+
enabled: true;
|
|
450
|
+
defaultKey: string;
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
export interface IRibbonItemRadioButton extends IRibbonItem {
|
|
454
|
+
type: 'RadioButton';
|
|
455
|
+
buttons: IRibbonCmd[];
|
|
456
|
+
}
|
|
457
|
+
export interface IRibbonItemSelect extends IRibbonItem {
|
|
458
|
+
type: 'Select';
|
|
459
|
+
title: string;
|
|
460
|
+
items: ILookup[];
|
|
461
|
+
defaultKey?: LookupValue;
|
|
462
|
+
action: (key: string) => void;
|
|
463
|
+
}
|
|
464
|
+
export interface IRibbonItemCustom extends IRibbonItem {
|
|
465
|
+
type: 'Custom';
|
|
466
|
+
title: string;
|
|
467
|
+
element: HTMLElement;
|
|
468
|
+
}
|
|
469
|
+
export type TreeItemActionInfo = IKeyedButtonInfo | HTMLInputElement;
|
|
470
|
+
export interface ITreeItem extends IOrderable {
|
|
471
|
+
id: LookupValue;
|
|
472
|
+
title: string;
|
|
473
|
+
checked?: boolean;
|
|
474
|
+
hidden?: boolean;
|
|
475
|
+
passive?: boolean;
|
|
476
|
+
actions?: TreeItemActionInfo[];
|
|
477
|
+
children?: ISimpleArray<ITreeItem>;
|
|
478
|
+
onAction?: (id: string) => void;
|
|
479
|
+
propsChanged?: Eventer<{
|
|
480
|
+
key: string;
|
|
481
|
+
value: any;
|
|
482
|
+
}, void>;
|
|
483
|
+
actionPropChanged?: Eventer<{
|
|
484
|
+
action: TreeItemActionInfo;
|
|
485
|
+
key: string;
|
|
486
|
+
value: any;
|
|
487
|
+
}, void>;
|
|
488
|
+
displayClass?: DisplayClasses;
|
|
489
|
+
icon?: HTMLElement;
|
|
490
|
+
}
|
|
491
|
+
export type TreeViewProperties = {
|
|
492
|
+
startupExpandLevel?: number;
|
|
493
|
+
selection: {
|
|
494
|
+
mode: 'single' | 'multi';
|
|
495
|
+
lockChildren?: boolean;
|
|
496
|
+
level?: number;
|
|
497
|
+
};
|
|
498
|
+
onValuesLoadedSuccess?: (ok: boolean) => void;
|
|
499
|
+
};
|
|
500
|
+
export type MessageBoxStyles = '' | 'error' | 'info' | 'warning' | 'success';
|
|
501
|
+
export interface SkeletonOptions {
|
|
502
|
+
width?: string | number;
|
|
503
|
+
height?: string | number;
|
|
504
|
+
borderRadius?: string | number;
|
|
505
|
+
count?: number;
|
|
506
|
+
className?: string;
|
|
507
|
+
animated?: boolean;
|
|
508
|
+
}
|
|
509
|
+
export type WaitingSkeletonBasicProperties = {
|
|
510
|
+
type: 'title' | 'button' | 'input' | 'card';
|
|
511
|
+
};
|
|
512
|
+
export type WaitingSkeletonLinedProperties = {
|
|
513
|
+
type: 'paragraph' | 'avatar';
|
|
514
|
+
lines: number;
|
|
515
|
+
};
|
|
516
|
+
export type WaitingSkeletonLinedAndWidthProperties = {
|
|
517
|
+
type: 'text';
|
|
518
|
+
lines: number;
|
|
519
|
+
width: string;
|
|
520
|
+
};
|
|
521
|
+
export type WaitingSkeletonTableProperties = {
|
|
522
|
+
type: 'table';
|
|
523
|
+
rows: number;
|
|
524
|
+
columns: number;
|
|
525
|
+
};
|
|
526
|
+
export type WaitingSkeletonFormProperties = {
|
|
527
|
+
type: 'form';
|
|
528
|
+
fields: number;
|
|
529
|
+
};
|
|
530
|
+
export type WaitingSkeletonProperties = WaitingSkeletonBasicProperties | WaitingSkeletonLinedProperties | WaitingSkeletonTableProperties | WaitingSkeletonFormProperties | WaitingSkeletonLinedAndWidthProperties;
|
|
531
|
+
export interface INofityItem {
|
|
532
|
+
hide(): void;
|
|
533
|
+
get exist(): boolean;
|
|
534
|
+
}
|
|
535
|
+
export type NotifyProperties = {
|
|
536
|
+
title: string;
|
|
537
|
+
message?: string | HTMLElement;
|
|
538
|
+
iconClass?: string;
|
|
539
|
+
autoHideMs?: number;
|
|
540
|
+
preventHideOnClick?: boolean;
|
|
541
|
+
type?: '' | 'error' | 'info' | 'warning' | 'success';
|
|
542
|
+
onClose?: Action;
|
|
543
|
+
};
|
|
544
|
+
export interface IActionManager {
|
|
545
|
+
setRestricted(value: boolean | string): any;
|
|
546
|
+
setDisabled(value: boolean | string): any;
|
|
547
|
+
}
|
|
548
|
+
export type ConversionProperties = {
|
|
549
|
+
dataUnit: LookupValue;
|
|
550
|
+
selectedUnit?: LookupValue;
|
|
551
|
+
conversions: ILookup[];
|
|
552
|
+
converter: (from: LookupValue, to: LookupValue, value: number) => number;
|
|
553
|
+
};
|
|
554
|
+
export class IndeterminateProgress extends HTMLElement {
|
|
555
|
+
constructor(attachMode?: 'bottom' | 'top' | null);
|
|
556
|
+
start(): void;
|
|
557
|
+
stop(): void;
|
|
558
|
+
}
|
|
559
|
+
export type ObserverFunc = (object: object, key: string, newValue: any, oldValue: any) => void;
|
|
560
|
+
export class System {
|
|
561
|
+
static observe(object: object, key: string, observer: ObserverFunc): void;
|
|
562
|
+
static isString(value: any): value is string;
|
|
563
|
+
static isNumber(value: any): value is number;
|
|
564
|
+
static isFunction(value: any): value is Function;
|
|
565
|
+
static isFunctionType(value: any): value is Function;
|
|
566
|
+
static isDate(value: any): value is Date;
|
|
567
|
+
static isArray(value: any): value is any[];
|
|
568
|
+
static isPromise<T>(value: any): value is Promise<T>;
|
|
569
|
+
static isHtmlElement(value: any): value is HTMLElement;
|
|
570
|
+
static isNullOrUndefined(value: any): boolean;
|
|
571
|
+
static isEmpty(value: any): boolean;
|
|
572
|
+
static toString(value: number | string, defaultValue?: string): string;
|
|
573
|
+
static toNumber(value: string, defaultValue?: number | null): number | null;
|
|
574
|
+
static getExecuterInfo(): string;
|
|
575
|
+
static epoch2Date(epoch: number): Date | null;
|
|
576
|
+
static epoch2DateStr(epoch: number, skipTime?: boolean): string;
|
|
577
|
+
static sortFnc(a: IOrderable, b: IOrderable): number;
|
|
578
|
+
static sort(arr: IOrderable[]): void;
|
|
579
|
+
static assignDefault<T extends AnObject>(properties: T, defaultProps: Required<T>): Required<T>;
|
|
580
|
+
static stringToArrayBuffer(str: string): ArrayBuffer;
|
|
581
|
+
static bufferToBase64(buffer: ArrayBuffer): string;
|
|
582
|
+
static base64ToBuffer(base64: any): ArrayBuffer;
|
|
583
|
+
static wait(ms: number): Promise<void>;
|
|
584
|
+
static formatIsoDateStr(value: string): string;
|
|
585
|
+
static hashString(str: string): number;
|
|
586
|
+
static random(min: number, max: number): number;
|
|
587
|
+
static generateColor(hash?: number): string;
|
|
588
|
+
static downloadBlob(blob: Blob, filename: string): void;
|
|
589
|
+
static selectAllText(inp: HTMLElement): void;
|
|
590
|
+
static getStaticData<T>(key: string): T | null;
|
|
591
|
+
static setStaticData<T>(key: string, value: T): void;
|
|
592
|
+
}
|
|
593
|
+
export class MessageDisplay extends HTMLElement {
|
|
594
|
+
constructor(type: MessageBoxStyles, message: string | HTMLElement);
|
|
595
|
+
setMessage(message: string | HTMLElement): void;
|
|
596
|
+
}
|
|
597
|
+
export class Spinner extends HTMLElement {
|
|
598
|
+
constructor(message?: string);
|
|
599
|
+
setMessage(message: string): void;
|
|
600
|
+
}
|
|
601
|
+
declare const spaDictionary: {
|
|
602
|
+
search: {
|
|
603
|
+
tr: string;
|
|
604
|
+
en: string;
|
|
605
|
+
};
|
|
606
|
+
save: {
|
|
607
|
+
tr: string;
|
|
608
|
+
en: string;
|
|
609
|
+
};
|
|
610
|
+
query: {
|
|
611
|
+
tr: string;
|
|
612
|
+
en: string;
|
|
613
|
+
};
|
|
614
|
+
add: {
|
|
615
|
+
tr: string;
|
|
616
|
+
en: string;
|
|
617
|
+
};
|
|
618
|
+
delete: {
|
|
619
|
+
tr: string;
|
|
620
|
+
en: string;
|
|
621
|
+
};
|
|
622
|
+
edit: {
|
|
623
|
+
tr: string;
|
|
624
|
+
en: string;
|
|
625
|
+
};
|
|
626
|
+
cancel: {
|
|
627
|
+
tr: string;
|
|
628
|
+
en: string;
|
|
629
|
+
};
|
|
630
|
+
ok: {
|
|
631
|
+
tr: string;
|
|
632
|
+
en: string;
|
|
633
|
+
};
|
|
634
|
+
yes: {
|
|
635
|
+
tr: string;
|
|
636
|
+
en: string;
|
|
637
|
+
};
|
|
638
|
+
clear: {
|
|
639
|
+
tr: string;
|
|
640
|
+
en: string;
|
|
641
|
+
};
|
|
642
|
+
no: {
|
|
643
|
+
tr: string;
|
|
644
|
+
en: string;
|
|
645
|
+
};
|
|
646
|
+
demo: {
|
|
647
|
+
tr: string;
|
|
648
|
+
en: string;
|
|
649
|
+
};
|
|
650
|
+
clear_memory: {
|
|
651
|
+
tr: string;
|
|
652
|
+
en: string;
|
|
653
|
+
};
|
|
654
|
+
loading: {
|
|
655
|
+
tr: string;
|
|
656
|
+
en: string;
|
|
657
|
+
};
|
|
658
|
+
go_to_page: {
|
|
659
|
+
tr: string;
|
|
660
|
+
en: string;
|
|
661
|
+
};
|
|
662
|
+
logout: {
|
|
663
|
+
tr: string;
|
|
664
|
+
en: string;
|
|
665
|
+
};
|
|
666
|
+
login: {
|
|
667
|
+
tr: string;
|
|
668
|
+
en: string;
|
|
669
|
+
};
|
|
670
|
+
settings: {
|
|
671
|
+
tr: string;
|
|
672
|
+
en: string;
|
|
673
|
+
};
|
|
674
|
+
dark_mode: {
|
|
675
|
+
tr: string;
|
|
676
|
+
en: string;
|
|
677
|
+
};
|
|
678
|
+
light_mode: {
|
|
679
|
+
tr: string;
|
|
680
|
+
en: string;
|
|
681
|
+
};
|
|
682
|
+
change_language: {
|
|
683
|
+
tr: string;
|
|
684
|
+
en: string;
|
|
685
|
+
};
|
|
686
|
+
change_theme_colors: {
|
|
687
|
+
tr: string;
|
|
688
|
+
en: string;
|
|
689
|
+
};
|
|
690
|
+
theme_electral: {
|
|
691
|
+
tr: string;
|
|
692
|
+
en: string;
|
|
693
|
+
};
|
|
694
|
+
completed: {
|
|
695
|
+
tr: string;
|
|
696
|
+
en: string;
|
|
697
|
+
};
|
|
698
|
+
close: {
|
|
699
|
+
tr: string;
|
|
700
|
+
en: string;
|
|
701
|
+
};
|
|
702
|
+
tab_group: {
|
|
703
|
+
tr: string;
|
|
704
|
+
en: string;
|
|
705
|
+
};
|
|
706
|
+
tab_group_with_active: {
|
|
707
|
+
tr: string;
|
|
708
|
+
en: string;
|
|
709
|
+
};
|
|
710
|
+
tab_ungroup: {
|
|
711
|
+
tr: string;
|
|
712
|
+
en: string;
|
|
713
|
+
};
|
|
714
|
+
tab_close_others: {
|
|
715
|
+
tr: string;
|
|
716
|
+
en: string;
|
|
717
|
+
};
|
|
718
|
+
tab_close_all: {
|
|
719
|
+
tr: string;
|
|
720
|
+
en: string;
|
|
721
|
+
};
|
|
722
|
+
panel_collapse: {
|
|
723
|
+
tr: string;
|
|
724
|
+
en: string;
|
|
725
|
+
};
|
|
726
|
+
panel_expand: {
|
|
727
|
+
tr: string;
|
|
728
|
+
en: string;
|
|
729
|
+
};
|
|
730
|
+
collapse: {
|
|
731
|
+
tr: string;
|
|
732
|
+
en: string;
|
|
733
|
+
};
|
|
734
|
+
expand: {
|
|
735
|
+
tr: string;
|
|
736
|
+
en: string;
|
|
737
|
+
};
|
|
738
|
+
required_fields_note: {
|
|
739
|
+
tr: string;
|
|
740
|
+
en: string;
|
|
741
|
+
};
|
|
742
|
+
required_fields_missing: {
|
|
743
|
+
tr: string;
|
|
744
|
+
en: string;
|
|
745
|
+
};
|
|
746
|
+
filters: {
|
|
747
|
+
tr: string;
|
|
748
|
+
en: string;
|
|
749
|
+
};
|
|
750
|
+
row_density: {
|
|
751
|
+
tr: string;
|
|
752
|
+
en: string;
|
|
753
|
+
};
|
|
754
|
+
density_compact: {
|
|
755
|
+
tr: string;
|
|
756
|
+
en: string;
|
|
757
|
+
};
|
|
758
|
+
density_comfortable: {
|
|
759
|
+
tr: string;
|
|
760
|
+
en: string;
|
|
761
|
+
};
|
|
762
|
+
blue: {
|
|
763
|
+
tr: string;
|
|
764
|
+
en: string;
|
|
765
|
+
};
|
|
766
|
+
indigo: {
|
|
767
|
+
tr: string;
|
|
768
|
+
en: string;
|
|
769
|
+
};
|
|
770
|
+
green: {
|
|
771
|
+
tr: string;
|
|
772
|
+
en: string;
|
|
773
|
+
};
|
|
774
|
+
petrol_blue: {
|
|
775
|
+
tr: string;
|
|
776
|
+
en: string;
|
|
777
|
+
};
|
|
778
|
+
pink: {
|
|
779
|
+
tr: string;
|
|
780
|
+
en: string;
|
|
781
|
+
};
|
|
782
|
+
yellow: {
|
|
783
|
+
tr: string;
|
|
784
|
+
en: string;
|
|
785
|
+
};
|
|
786
|
+
login_username_label: {
|
|
787
|
+
tr: string;
|
|
788
|
+
en: string;
|
|
789
|
+
};
|
|
790
|
+
login_password_label: {
|
|
791
|
+
tr: string;
|
|
792
|
+
en: string;
|
|
793
|
+
};
|
|
794
|
+
login_button_text: {
|
|
795
|
+
tr: string;
|
|
796
|
+
en: string;
|
|
797
|
+
};
|
|
798
|
+
toogle_pin_unpin: {
|
|
799
|
+
tr: string;
|
|
800
|
+
en: string;
|
|
801
|
+
};
|
|
802
|
+
error: {
|
|
803
|
+
tr: string;
|
|
804
|
+
en: string;
|
|
805
|
+
};
|
|
806
|
+
error_authorized_page_not_found: {
|
|
807
|
+
tr: string;
|
|
808
|
+
en: string;
|
|
809
|
+
};
|
|
810
|
+
page_title_application: {
|
|
811
|
+
tr: string;
|
|
812
|
+
en: string;
|
|
813
|
+
};
|
|
814
|
+
page_title_admin: {
|
|
815
|
+
tr: string;
|
|
816
|
+
en: string;
|
|
817
|
+
};
|
|
818
|
+
required_label: {
|
|
819
|
+
tr: string;
|
|
820
|
+
en: string;
|
|
821
|
+
};
|
|
822
|
+
last_login: {
|
|
823
|
+
tr: string;
|
|
824
|
+
en: string;
|
|
825
|
+
};
|
|
826
|
+
collapse_expand: {
|
|
827
|
+
tr: string;
|
|
828
|
+
en: string;
|
|
829
|
+
};
|
|
830
|
+
last_x_hour: {
|
|
831
|
+
tr: string;
|
|
832
|
+
en: string;
|
|
833
|
+
};
|
|
834
|
+
last_x_day: {
|
|
835
|
+
tr: string;
|
|
836
|
+
en: string;
|
|
837
|
+
};
|
|
838
|
+
last_x_month: {
|
|
839
|
+
tr: string;
|
|
840
|
+
en: string;
|
|
841
|
+
};
|
|
842
|
+
today: {
|
|
843
|
+
tr: string;
|
|
844
|
+
en: string;
|
|
845
|
+
};
|
|
846
|
+
yesterday: {
|
|
847
|
+
tr: string;
|
|
848
|
+
en: string;
|
|
849
|
+
};
|
|
850
|
+
this_month: {
|
|
851
|
+
tr: string;
|
|
852
|
+
en: string;
|
|
853
|
+
};
|
|
854
|
+
last_month: {
|
|
855
|
+
tr: string;
|
|
856
|
+
en: string;
|
|
857
|
+
};
|
|
858
|
+
quick_select: {
|
|
859
|
+
tr: string;
|
|
860
|
+
en: string;
|
|
861
|
+
};
|
|
862
|
+
baslangic: {
|
|
863
|
+
tr: string;
|
|
864
|
+
en: string;
|
|
865
|
+
};
|
|
866
|
+
bitis: {
|
|
867
|
+
tr: string;
|
|
868
|
+
en: string;
|
|
869
|
+
};
|
|
870
|
+
err_date_baslangic_bitis: {
|
|
871
|
+
tr: string;
|
|
872
|
+
en: string;
|
|
873
|
+
};
|
|
874
|
+
cmb_seciniz: {
|
|
875
|
+
tr: string;
|
|
876
|
+
en: string;
|
|
877
|
+
};
|
|
878
|
+
showDetails: {
|
|
879
|
+
tr: string;
|
|
880
|
+
en: string;
|
|
881
|
+
};
|
|
882
|
+
clear_column_filters: {
|
|
883
|
+
tr: string;
|
|
884
|
+
en: string;
|
|
885
|
+
};
|
|
886
|
+
clear_column_filters_confirmation: {
|
|
887
|
+
tr: string;
|
|
888
|
+
en: string;
|
|
889
|
+
};
|
|
890
|
+
show_column_filters: {
|
|
891
|
+
tr: string;
|
|
892
|
+
en: string;
|
|
893
|
+
};
|
|
894
|
+
show_hide_column_selection: {
|
|
895
|
+
tr: string;
|
|
896
|
+
en: string;
|
|
897
|
+
};
|
|
898
|
+
addXNew: {
|
|
899
|
+
tr: string;
|
|
900
|
+
en: string;
|
|
901
|
+
};
|
|
902
|
+
deleteItem: {
|
|
903
|
+
tr: string;
|
|
904
|
+
en: string;
|
|
905
|
+
};
|
|
906
|
+
editItem: {
|
|
907
|
+
tr: string;
|
|
908
|
+
en: string;
|
|
909
|
+
};
|
|
910
|
+
};
|
|
911
|
+
type SpaDictionaryKeys = keyof typeof spaDictionary;
|
|
912
|
+
export function registerDictionary(dictionary: Dictionary): void;
|
|
913
|
+
export function txtSpa<K extends SpaDictionaryKeys = SpaDictionaryKeys>(key: K, ...prms: string[]): string;
|
|
914
|
+
export function setActiveLanguage(lang: string): void;
|
|
915
|
+
export function getActiveLanguage(): string;
|
|
916
|
+
export class Skeleton extends HTMLElement {
|
|
917
|
+
constructor(options?: SkeletonOptions);
|
|
918
|
+
}
|
|
919
|
+
export class SkeletonPresets {
|
|
920
|
+
static text(lines?: number, width?: string): Skeleton;
|
|
921
|
+
static title(): Skeleton;
|
|
922
|
+
static paragraph(lines?: number): HTMLElement;
|
|
923
|
+
static avatar(size?: number): Skeleton;
|
|
924
|
+
static button(width?: string): Skeleton;
|
|
925
|
+
static input(): Skeleton;
|
|
926
|
+
static card(): HTMLElement;
|
|
927
|
+
static table(rows?: number, columns?: number): HTMLElement;
|
|
928
|
+
static form(fields?: number): HTMLElement;
|
|
929
|
+
}
|
|
930
|
+
export class EventService {
|
|
931
|
+
constructor();
|
|
932
|
+
listen<TData, TResult>(eventName: string, listener: EventListener<TData, TResult>, abortSignal?: AbortSignal, debunceMs?: number): void;
|
|
933
|
+
forgot<TData, TResult>(eventName: string, listener: EventListener<TData, TResult>): void;
|
|
934
|
+
raise<TData, TResult>(eventName: string, data: TData): Promise<TResult[]>;
|
|
935
|
+
}
|
|
936
|
+
export type DependencyInfo = {
|
|
937
|
+
name: string;
|
|
938
|
+
errorReason: string;
|
|
939
|
+
status: boolean;
|
|
940
|
+
};
|
|
941
|
+
export class DepResService {
|
|
942
|
+
eventService: EventService;
|
|
943
|
+
initAsync(host: HTMLElement, loader: AsyncOperation<DependencyInfo[]>): Promise<void>;
|
|
944
|
+
getAllStatus(): DependencyInfo[];
|
|
945
|
+
getStatusOf(service: string): DependencyInfo;
|
|
946
|
+
}
|
|
947
|
+
export class Notify {
|
|
948
|
+
static container: HTMLDivElement;
|
|
949
|
+
static Error(title: string, message?: string | HTMLElement, replace?: INofityItem, autoHideMs?: number): INofityItem;
|
|
950
|
+
static Success(title: string, message?: string, replace?: INofityItem, autoHideMs?: number): INofityItem;
|
|
951
|
+
static Warning(title: string, message?: string, replace?: INofityItem, autoHideMs?: number): INofityItem;
|
|
952
|
+
static Info(title: string, message?: string, replace?: INofityItem, autoHideMs?: number): INofityItem;
|
|
953
|
+
static Show(properties: NotifyProperties, replace?: INofityItem): INofityItem;
|
|
954
|
+
static Wait(title: string, message?: string, replace?: INofityItem): INofityItem;
|
|
955
|
+
static UnauthorisedAction(): void;
|
|
956
|
+
}
|
|
957
|
+
export type ActionManagerProperties = {
|
|
958
|
+
title: string;
|
|
959
|
+
disabled: boolean | string;
|
|
960
|
+
unauthorized: boolean;
|
|
961
|
+
dependedResource?: string;
|
|
962
|
+
onClick: (ev: PointerEvent) => void;
|
|
963
|
+
};
|
|
964
|
+
export class ActionManager implements IActionManager {
|
|
965
|
+
depres: DepResService;
|
|
966
|
+
constructor(_target: HTMLElement, _props: ActionManagerProperties);
|
|
967
|
+
setRestricted(value: boolean | string): void;
|
|
968
|
+
setDisabled(value: boolean | string): void;
|
|
969
|
+
}
|
|
970
|
+
export interface IDomItem {
|
|
971
|
+
tag: keyof HTMLElementTagNameMap;
|
|
972
|
+
styles?: Partial<CSSStyleDeclaration>;
|
|
973
|
+
attrs?: Record<string, string>;
|
|
974
|
+
children?: Array<IDomItem | HTMLElement>;
|
|
975
|
+
}
|
|
976
|
+
export class ELF {
|
|
977
|
+
static create<K extends keyof HTMLElementTagNameMap>(tag: K, styles?: Partial<CSSStyleDeclaration>, attrs?: Partial<HTMLElementTagNameMap[K]>, children?: Array<HTMLElement | string>): HTMLElementTagNameMap[K];
|
|
978
|
+
static build(item: IDomItem): HTMLElement;
|
|
979
|
+
static button(text?: string, tooltip?: string, btnClasses?: string, iconClass?: string, action?: (ev?: PointerEvent, btn?: HTMLButtonElement) => void, unauthorized?: boolean, disabled?: boolean | string, dependedResource?: string): HTMLButtonElement;
|
|
980
|
+
static addClearIcon(target: HTMLElement, clearAction: () => void): HTMLElement;
|
|
981
|
+
static readonly Buttons: {
|
|
982
|
+
changeIcon: (btn: HTMLButtonElement, iconClass: string) => void;
|
|
983
|
+
changeDisabled: (btn: HTMLButtonElement, value: boolean | string) => void;
|
|
984
|
+
fromButtonInfo: (info: IButtonInfo, classes?: string, action?: (ev?: PointerEvent, btn?: BaggedButtonElement) => void, unauthorized?: boolean) => BaggedButtonElement;
|
|
985
|
+
iconToggle: (state: boolean, tooltip: string, iconClass: string, falseIconClass: string, action: (state: boolean, ev?: PointerEvent, btn?: HTMLButtonElement) => void, unauthorized?: boolean, disabled?: boolean | string, dependedResource?: string) => HTMLButtonElement;
|
|
986
|
+
search: (action: (ev?: PointerEvent, btn?: HTMLButtonElement) => void, text?: string, tooltip?: string, unauthorized?: boolean, disabled?: boolean | string, dependedResource?: string) => HTMLButtonElement;
|
|
987
|
+
save: (action: (ev?: PointerEvent, btn?: HTMLButtonElement) => void, text?: string, tooltip?: string, unauthorized?: boolean, disabled?: boolean | string, dependedResource?: string) => HTMLButtonElement;
|
|
988
|
+
query: (action: (ev?: PointerEvent, btn?: HTMLButtonElement) => void, text?: string, tooltip?: string, unauthorized?: boolean, disabled?: boolean | string, dependedResource?: string) => HTMLButtonElement;
|
|
989
|
+
add: (action: (ev?: PointerEvent, btn?: HTMLButtonElement) => void, text?: string, tooltip?: string, unauthorized?: boolean, disabled?: boolean | string, dependedResource?: string) => HTMLButtonElement;
|
|
990
|
+
delete: (action: (ev?: PointerEvent, btn?: HTMLButtonElement) => void, text?: string, tooltip?: string, unauthorized?: boolean, disabled?: boolean | string, dependedResource?: string) => HTMLButtonElement;
|
|
991
|
+
edit: (action: (ev?: PointerEvent, btn?: HTMLButtonElement) => void, text?: string, tooltip?: string, unauthorized?: boolean, disabled?: boolean | string, dependedResource?: string) => HTMLButtonElement;
|
|
992
|
+
cancel: (action: (ev?: PointerEvent, btn?: HTMLButtonElement) => void, text?: string, tooltip?: string, unauthorized?: boolean, disabled?: boolean | string, dependedResource?: string) => HTMLButtonElement;
|
|
993
|
+
mini: (action: (ev?: PointerEvent, btn?: HTMLButtonElement) => void, iconClass: string, tooltip?: string, unauthorized?: boolean, disabled?: boolean | string, dependedResource?: string) => HTMLButtonElement;
|
|
994
|
+
};
|
|
995
|
+
static div(classes?: string, ...children: Array<HTMLElement | string>): HTMLDivElement;
|
|
996
|
+
static img(src: string, classes?: string, width?: number, height?: number): HTMLImageElement;
|
|
997
|
+
static dialog(classes?: string, ...children: Array<HTMLElement | string>): HTMLDialogElement;
|
|
998
|
+
static span(text?: string, classes?: string): HTMLSpanElement;
|
|
999
|
+
static ul(attrs?: Record<string, string>, styles?: Partial<CSSStyleDeclaration>): HTMLUListElement;
|
|
1000
|
+
static li(attrs?: Record<string, string>, styles?: Partial<CSSStyleDeclaration>): HTMLLIElement;
|
|
1001
|
+
static label(label: string, classes?: string): HTMLLabelElement;
|
|
1002
|
+
static closeButton(): HTMLAnchorElement;
|
|
1003
|
+
static input(type: 'hidden' | 'text' | 'number' | 'date' | 'checkbox' | 'textarea' | 'password' | 'time' | 'datetime-local' | 'month' | 'color' | 'range' | 'search', value?: string, placeholder?: string): HTMLInputElement;
|
|
1004
|
+
static textarea(value?: string): HTMLTextAreaElement;
|
|
1005
|
+
static switch(): HTMLInputElement;
|
|
1006
|
+
static icon(className: string): HTMLElement;
|
|
1007
|
+
static h(num: 1 | 2 | 3 | 4 | 5 | 6, text: string, className?: string): HTMLHeadingElement;
|
|
1008
|
+
static p(text: string, className?: string): HTMLParagraphElement;
|
|
1009
|
+
static option(text: string, value?: LookupValue): HTMLOptionElement;
|
|
1010
|
+
static select(): HTMLSelectElement;
|
|
1011
|
+
static selectWithOptions(...values: string[]): HTMLSelectElement;
|
|
1012
|
+
static selectWithLookup(...lookups: ILookup[]): HTMLSelectElement;
|
|
1013
|
+
static setClasses<T extends HTMLElement>(elm: T, ...arr: string[]): T;
|
|
1014
|
+
static setStyles<T extends HTMLElement>(elm: T, styles?: Partial<CSSStyleDeclaration>): T;
|
|
1015
|
+
static setAttributes<T extends HTMLElement>(elm: T, attrs: Record<string, string>): T;
|
|
1016
|
+
static switchClassesIf<T extends HTMLElement>(elm: T, condition: boolean, trueClass: string, falseClass?: string): T;
|
|
1017
|
+
static nextElementId(prefix?: string): string;
|
|
1018
|
+
static showHideSpinnerAt(elm: HTMLElement, show: boolean, message?: string): void;
|
|
1019
|
+
static showHideWorkingAt(elm: HTMLElement, show: boolean, attachMode?: 'bottom' | 'top'): void;
|
|
1020
|
+
static showHideSkeletonAt(elm: HTMLElement, show: boolean, props?: WaitingSkeletonProperties): void;
|
|
1021
|
+
static getSpinnerAt(elm: HTMLElement): Spinner;
|
|
1022
|
+
static showHideMessageDisplayAt(elm: HTMLElement, show: boolean, style?: MessageBoxStyles, message?: string | HTMLElement): void;
|
|
1023
|
+
static showHideGlassAt(elm: HTMLElement, show: boolean): void;
|
|
1024
|
+
static colorizeElement(elm: HTMLElement, color: string): Promise<void>;
|
|
1025
|
+
static toggleFullscreen(elm: HTMLElement): void;
|
|
1026
|
+
static disableAll(elm: HTMLElement, disable: boolean): void;
|
|
1027
|
+
static setUnauthorized(elm: HTMLElement, value: boolean): void;
|
|
1028
|
+
static hide(elm: HTMLElement, value?: boolean): void;
|
|
1029
|
+
}
|
|
1030
|
+
interface CustomEventListener<TEventKeys extends HTMLElementEventMap = HTMLElementEventMap, K extends keyof TEventKeys = keyof TEventKeys, MT extends TEventKeys[K] = TEventKeys[K]> {
|
|
1031
|
+
(evt: MT): void;
|
|
1032
|
+
}
|
|
1033
|
+
export abstract class BaseElement<TEventKeys extends HTMLElementEventMap = HTMLElementEventMap> extends HTMLElement implements IObservable {
|
|
1034
|
+
protected _connected: boolean;
|
|
1035
|
+
isMoving: boolean;
|
|
1036
|
+
eid: number;
|
|
1037
|
+
canClose(): Promise<boolean>;
|
|
1038
|
+
protected onConnected?(isFirst?: boolean): void;
|
|
1039
|
+
protected onDisconnected?(): void;
|
|
1040
|
+
readonly onPropChanged: Eventer<PropChangeInfo, void>;
|
|
1041
|
+
constructor();
|
|
1042
|
+
addEventListener<K extends keyof TEventKeys>(type: K, listener: CustomEventListener<TEventKeys, K>, options?: boolean | AddEventListenerOptions): void;
|
|
1043
|
+
dispatchEvent(event: Event): boolean;
|
|
1044
|
+
raiseEvent<K extends keyof TEventKeys = keyof TEventKeys, MT extends TEventKeys[K] = TEventKeys[K]>(eventName: K, event: MT): boolean;
|
|
1045
|
+
getDisposedSignal(): AbortSignal;
|
|
1046
|
+
raisePropChanged(info: PropChangeInfo): void;
|
|
1047
|
+
connectedCallback(): void;
|
|
1048
|
+
disconnectedCallback(): void;
|
|
1049
|
+
set bag(value: any);
|
|
1050
|
+
get bag(): any;
|
|
1051
|
+
grapFocus(child: HTMLElement): void;
|
|
1052
|
+
get isBusy(): boolean;
|
|
1053
|
+
setBusy(value: boolean, props?: string | WaitingSkeletonProperties): void;
|
|
1054
|
+
set visible(v: boolean);
|
|
1055
|
+
removeAllChildNodes(): void;
|
|
1056
|
+
isExist(): boolean;
|
|
1057
|
+
setBlocked(value: boolean): void;
|
|
1058
|
+
}
|
|
1059
|
+
export abstract class BaseFormElement extends BaseElement {
|
|
1060
|
+
abstract check(): boolean;
|
|
1061
|
+
abstract getData(): any;
|
|
1062
|
+
abstract isReadonly: boolean;
|
|
1063
|
+
abstract getErrors(): string[] | null;
|
|
1064
|
+
}
|
|
1065
|
+
export abstract class BaseAsyncFormElement extends BaseFormElement {
|
|
1066
|
+
abstract checkAsync(): Promise<boolean>;
|
|
1067
|
+
}
|
|
1068
|
+
export abstract class BasePanelElement extends BaseElement {
|
|
1069
|
+
constructor();
|
|
1070
|
+
onPanelAdd(): void;
|
|
1071
|
+
onPanelRemoved(): void;
|
|
1072
|
+
onPanelShow(): void;
|
|
1073
|
+
onPanelHide(): void;
|
|
1074
|
+
onPanelMoveStart(): void;
|
|
1075
|
+
onPanelMoveEnd(): void;
|
|
1076
|
+
onPanelResize?(start: boolean): void;
|
|
1077
|
+
}
|
|
1078
|
+
export function warnPanelResize(parent: HTMLElement, start: boolean): void;
|
|
1079
|
+
export interface IWindow {
|
|
1080
|
+
closeAsync(): Promise<boolean>;
|
|
1081
|
+
}
|
|
1082
|
+
export class DialogWindow {
|
|
1083
|
+
static DialogHost: HTMLElement;
|
|
1084
|
+
static ShowAsync(title: string, content: HTMLElement): Promise<void>;
|
|
1085
|
+
static ShowPanel(item: TabItem, mainPanel: IMainPanel): void;
|
|
1086
|
+
static ClosePanelAsync(panelName: string): Promise<boolean>;
|
|
1087
|
+
static HasPanel(panelName: string): boolean;
|
|
1088
|
+
}
|
|
1089
|
+
export class DropdownVisibleChangedChangedEvent extends Event {
|
|
1090
|
+
visible: boolean;
|
|
1091
|
+
constructor(visible: boolean);
|
|
1092
|
+
}
|
|
1093
|
+
type DropdownEventMap = HTMLElementEventMap & {
|
|
1094
|
+
visibleChanged: DropdownVisibleChangedChangedEvent;
|
|
1095
|
+
};
|
|
1096
|
+
export class Dropdown extends BaseElement<DropdownEventMap> {
|
|
1097
|
+
constructor(content: HTMLElement, widthMode?: 'parent' | 'auto', rightAligned?: boolean, maxHeight?: string);
|
|
1098
|
+
protected onConnected(isFirst?: boolean): void;
|
|
1099
|
+
toggle(): void;
|
|
1100
|
+
get visible(): boolean;
|
|
1101
|
+
set visible(value: boolean);
|
|
1102
|
+
get content(): HTMLElement;
|
|
1103
|
+
set content(value: HTMLElement);
|
|
1104
|
+
}
|
|
1105
|
+
declare class TokenManagerClass {
|
|
1106
|
+
refreshing: boolean;
|
|
1107
|
+
refreshMin: number;
|
|
1108
|
+
maxLastUsedMin: number;
|
|
1109
|
+
get isExpired(): boolean;
|
|
1110
|
+
get needRefresh(): boolean;
|
|
1111
|
+
get isValid(): boolean;
|
|
1112
|
+
get headerValue(): string;
|
|
1113
|
+
get token(): string;
|
|
1114
|
+
get lastUsed(): number;
|
|
1115
|
+
markUsed(): void;
|
|
1116
|
+
setToken(token: string, expiresAt: number): boolean;
|
|
1117
|
+
clearToken(): void;
|
|
1118
|
+
}
|
|
1119
|
+
export const TokenManager: TokenManagerClass;
|
|
1120
|
+
export class StoreService {
|
|
1121
|
+
initialize(appProps: ApplicationProperties): Promise<void>;
|
|
1122
|
+
get appProperties(): ApplicationProperties;
|
|
1123
|
+
set(isUserItem: boolean, key: string, value: any): Promise<void>;
|
|
1124
|
+
getItem(isUserItem: boolean, key: string): Promise<any>;
|
|
1125
|
+
tryGetItem<T>(isUserItem: boolean, key: string, defaultValue: T): Promise<T>;
|
|
1126
|
+
removeItem(isUserItem: boolean, key: string): Promise<void>;
|
|
1127
|
+
}
|
|
1128
|
+
export class AuthService {
|
|
1129
|
+
private get props();
|
|
1130
|
+
startAsync(): Promise<boolean>;
|
|
1131
|
+
onSuccessLogin(loginInfo: ILoginInfo): void;
|
|
1132
|
+
get isLogined(): boolean;
|
|
1133
|
+
get currentUser(): IUserInfo | null;
|
|
1134
|
+
getHeaderUserDisplayText(): string;
|
|
1135
|
+
hasAuth(auth?: string): boolean;
|
|
1136
|
+
refreshToken(token: string, expires: number): Promise<boolean>;
|
|
1137
|
+
logOut(): Promise<boolean>;
|
|
1138
|
+
setLogoutHandler(logoutHandler: () => Promise<void>): void;
|
|
1139
|
+
protected _fillAuthHeader(ri: RequestInit, token: string): boolean;
|
|
1140
|
+
}
|
|
1141
|
+
export class Menu extends BaseElement implements ICommandDisplayer {
|
|
1142
|
+
readonly properties: MenuProperties;
|
|
1143
|
+
readonly _isDrop: boolean;
|
|
1144
|
+
ItemClicked: Eventer<MenuItem>;
|
|
1145
|
+
ItemAction: Eventer<{
|
|
1146
|
+
item: MenuItem;
|
|
1147
|
+
actionKey: string;
|
|
1148
|
+
}>;
|
|
1149
|
+
constructor(properties: MenuProperties, _isDrop?: boolean);
|
|
1150
|
+
setActive(key: string, value: boolean): void;
|
|
1151
|
+
setDisabled(key: string, value: boolean | string): void;
|
|
1152
|
+
setRestricted(key: string, value: boolean | string): void;
|
|
1153
|
+
set items(items: MenuItem[]);
|
|
1154
|
+
setItemHidden(hidden: boolean, key: string): void;
|
|
1155
|
+
findItemByKey(key: string): MenuItemElement;
|
|
1156
|
+
}
|
|
1157
|
+
export class MenuItemElement extends BaseElement {
|
|
1158
|
+
actionManager: ActionManager;
|
|
1159
|
+
constructor(_mi: MenuItem, _parent: HTMLElement, _menu: Menu);
|
|
1160
|
+
buildUi(): void;
|
|
1161
|
+
setRestricted(value: boolean | string): void;
|
|
1162
|
+
setDisabled(value: boolean | string): void;
|
|
1163
|
+
}
|
|
1164
|
+
export type ListItemInx<T> = IdValue<T> & {
|
|
1165
|
+
inx: number;
|
|
1166
|
+
};
|
|
1167
|
+
export type IndexedListChangeInfo<T> = {
|
|
1168
|
+
added?: ListItemInx<T>[];
|
|
1169
|
+
removed?: ListItemInx<T>[];
|
|
1170
|
+
replaced?: {
|
|
1171
|
+
old: ListItemInx<T>;
|
|
1172
|
+
new: ListItemInx<T>;
|
|
1173
|
+
};
|
|
1174
|
+
sorted?: boolean;
|
|
1175
|
+
};
|
|
1176
|
+
export class IndexedList<T> implements ISimpleArray<T> {
|
|
1177
|
+
readonly [n: number]: T;
|
|
1178
|
+
get length(): number;
|
|
1179
|
+
readonly changeEvent: Eventer<IndexedListChangeInfo<T>, void>;
|
|
1180
|
+
constructor(...arr: T[]);
|
|
1181
|
+
[Symbol.iterator](): Generator<T, void, unknown>;
|
|
1182
|
+
add(item: T): number;
|
|
1183
|
+
addMany(...items: T[]): IdValue<T>[];
|
|
1184
|
+
getById(id: number): ListItemInx<T> | null;
|
|
1185
|
+
getValueById(id: number): T | null;
|
|
1186
|
+
setById(id: number, value: T): boolean;
|
|
1187
|
+
removeById(id: number): boolean;
|
|
1188
|
+
removeManyById(...ids: number[]): boolean;
|
|
1189
|
+
clear(): void;
|
|
1190
|
+
idsOf(value: T): number[];
|
|
1191
|
+
contains(value: T): boolean;
|
|
1192
|
+
find(predicate: (value: T) => boolean): T | null;
|
|
1193
|
+
findId(predicate: (value: T) => boolean): number | null;
|
|
1194
|
+
filter(predicate: (value: T) => boolean): T[];
|
|
1195
|
+
map<U>(callbackfn: (value: T) => U): U[];
|
|
1196
|
+
forEach(callbackfn: (value: T) => void): void;
|
|
1197
|
+
forEachItem(callbackfn: (value: ListItemInx<T>) => void): void;
|
|
1198
|
+
sort(callbackfn: (a: T, b: T) => number): void;
|
|
1199
|
+
toArray(): T[];
|
|
1200
|
+
moveUp(value: T): boolean;
|
|
1201
|
+
moveDown(value: T): boolean;
|
|
1202
|
+
}
|
|
1203
|
+
export abstract class BaseFormInputComponent<T, ET extends HTMLElementEventMap = HTMLElementEventMap> extends BaseElement<ET> implements IFormInputComponent<T> {
|
|
1204
|
+
protected _isreadonly: boolean;
|
|
1205
|
+
protected _loadingValues: boolean;
|
|
1206
|
+
protected _valueLasy: T;
|
|
1207
|
+
onValueChanged: Eventer<T, void>;
|
|
1208
|
+
abstract set value(value: T);
|
|
1209
|
+
abstract get value(): T;
|
|
1210
|
+
get isLoadingValues(): boolean;
|
|
1211
|
+
get readOnly(): boolean;
|
|
1212
|
+
set readOnly(readonly: boolean);
|
|
1213
|
+
protected onReadonlychanged(): void;
|
|
1214
|
+
}
|
|
1215
|
+
export type IndexedElement = HTMLElement & {
|
|
1216
|
+
itemid: number;
|
|
1217
|
+
};
|
|
1218
|
+
export interface BaseListProperties<T> {
|
|
1219
|
+
source: IndexedList<T>;
|
|
1220
|
+
itemFactory: (item: T) => HTMLElement;
|
|
1221
|
+
conditionFunc?: (item: T) => boolean;
|
|
1222
|
+
selectable?: boolean;
|
|
1223
|
+
beforeSelectValidation?: (item: T, id: number) => Promise<boolean>;
|
|
1224
|
+
}
|
|
1225
|
+
export abstract class BaseListComponent<T> extends BaseFormInputComponent<T> {
|
|
1226
|
+
protected props: BaseListProperties<T>;
|
|
1227
|
+
protected _domMap: Map<number, HTMLElement>;
|
|
1228
|
+
protected _itemContainer: HTMLDivElement;
|
|
1229
|
+
protected _contition: (item: T) => boolean;
|
|
1230
|
+
protected _selected: {
|
|
1231
|
+
id: number;
|
|
1232
|
+
elm: HTMLElement;
|
|
1233
|
+
};
|
|
1234
|
+
protected _source: IndexedList<T>;
|
|
1235
|
+
ItemClicked: Eventer<{
|
|
1236
|
+
item: T;
|
|
1237
|
+
id: number;
|
|
1238
|
+
}>;
|
|
1239
|
+
constructor(props: BaseListProperties<T>);
|
|
1240
|
+
protected abstract _onCreateCustomItems(): void;
|
|
1241
|
+
protected abstract _addElementItem(item: T, elm: IndexedElement): any;
|
|
1242
|
+
protected abstract _onAfterSourceChanged(change: IndexedListChangeInfo<T>): any;
|
|
1243
|
+
getElementForId(itemId: number): HTMLElement;
|
|
1244
|
+
getValueForId(itemId: number): T;
|
|
1245
|
+
get value(): T;
|
|
1246
|
+
set value(value: T);
|
|
1247
|
+
protected onReadonlychanged(): void;
|
|
1248
|
+
get selectedId(): number;
|
|
1249
|
+
set selectedId(id: number);
|
|
1250
|
+
}
|
|
1251
|
+
export interface ListComponentProperties<T> extends BaseListProperties<T> {
|
|
1252
|
+
filterFnc?: (txt: string, item: T) => boolean;
|
|
1253
|
+
customHtmlContainers?: HTMLElement[];
|
|
1254
|
+
}
|
|
1255
|
+
export class ListComponent<T> extends BaseListComponent<T> {
|
|
1256
|
+
constructor(props: ListComponentProperties<T>);
|
|
1257
|
+
protected _onCreateCustomItems(): void;
|
|
1258
|
+
protected _addElementItem(item: T, elm: IndexedElement): void;
|
|
1259
|
+
protected _onAfterSourceChanged(change: IndexedListChangeInfo<T>): void;
|
|
1260
|
+
}
|
|
1261
|
+
export class ListComponentHelper {
|
|
1262
|
+
static CreateStringListComponent(source: IndexedList<string>, selectable?: boolean): ListComponent<string>;
|
|
1263
|
+
}
|
|
1264
|
+
export class OptionsMenu extends BaseElement implements ICommandDisplayer {
|
|
1265
|
+
ItemClicked: Eventer<IKeyedButtonInfo>;
|
|
1266
|
+
ItemAction: Eventer<{
|
|
1267
|
+
item: MenuItem;
|
|
1268
|
+
actionKey: string;
|
|
1269
|
+
}>;
|
|
1270
|
+
menu: Menu;
|
|
1271
|
+
constructor(props: OptionMenuProperties);
|
|
1272
|
+
set items(items: MenuItem[]);
|
|
1273
|
+
setActive(key: string, value: boolean): void;
|
|
1274
|
+
setDisabled(key: string, value: boolean): void;
|
|
1275
|
+
}
|
|
1276
|
+
export class OptionsList<T> extends BaseElement {
|
|
1277
|
+
ItemClicked: Eventer<T>;
|
|
1278
|
+
ItemAction: Eventer<{
|
|
1279
|
+
item: MenuItem;
|
|
1280
|
+
actionKey: string;
|
|
1281
|
+
}>;
|
|
1282
|
+
list: ListComponent<T>;
|
|
1283
|
+
source: IndexedList<T>;
|
|
1284
|
+
constructor(props: OptionListProperties<T>);
|
|
1285
|
+
changeIcon(iconClass: string): void;
|
|
1286
|
+
}
|
|
1287
|
+
export type ContextMenuProperties = {
|
|
1288
|
+
target: HTMLElement;
|
|
1289
|
+
items?: MenuItem[] | AsyncAction<MenuItem[]>;
|
|
1290
|
+
auto?: boolean;
|
|
1291
|
+
};
|
|
1292
|
+
export class ContextMenu implements ICommandDisplayer {
|
|
1293
|
+
ItemClicked: Eventer<MenuItem>;
|
|
1294
|
+
constructor(props: ContextMenuProperties);
|
|
1295
|
+
setItems(items: AsyncAction<MenuItem[]> | MenuItem[]): void;
|
|
1296
|
+
setActive(key: string, value: boolean): void;
|
|
1297
|
+
setDisabled(key: string, value: boolean): void;
|
|
1298
|
+
isExist(): boolean;
|
|
1299
|
+
showAt(x: number, y: number): Promise<boolean>;
|
|
1300
|
+
hide(): void;
|
|
1301
|
+
}
|
|
1302
|
+
export type TabItem = {
|
|
1303
|
+
name: string;
|
|
1304
|
+
header: string;
|
|
1305
|
+
content: HTMLElement;
|
|
1306
|
+
closable?: boolean;
|
|
1307
|
+
hidden?: boolean;
|
|
1308
|
+
draggable?: boolean;
|
|
1309
|
+
color?: string;
|
|
1310
|
+
posRememberKey?: string;
|
|
1311
|
+
focusable?: boolean;
|
|
1312
|
+
focusAddress?: string;
|
|
1313
|
+
restoreCommand?: string;
|
|
1314
|
+
} & IOrderable;
|
|
1315
|
+
export interface ITabContainer {
|
|
1316
|
+
tabsChanged: Eventer<TabsChangedData, void>;
|
|
1317
|
+
addTab(ti: TabItem): any;
|
|
1318
|
+
containsTab(name: string): boolean;
|
|
1319
|
+
removeTabAsync(name: string): Promise<boolean>;
|
|
1320
|
+
activateTab(indexOrName: number | string): boolean;
|
|
1321
|
+
showHideTab(indexOrName: number | string, show: boolean): any;
|
|
1322
|
+
getActiveTabItem(): TabItem | null;
|
|
1323
|
+
}
|
|
1324
|
+
export type TabsChangedData = {
|
|
1325
|
+
type: 'add' | 'remove' | 'activated' | 'deactivated';
|
|
1326
|
+
tab: TabItem;
|
|
1327
|
+
};
|
|
1328
|
+
export class TabContainer extends BaseElement implements ITabContainer {
|
|
1329
|
+
tabs: Tab[];
|
|
1330
|
+
headers: TabHeader[];
|
|
1331
|
+
tabsChanged: Eventer<TabsChangedData, void>;
|
|
1332
|
+
onTabItemDragStarted: Eventer<TabItem>;
|
|
1333
|
+
dragTabName: string | null;
|
|
1334
|
+
splitReady: Promise<void>;
|
|
1335
|
+
constructor(enableOverFlow?: boolean);
|
|
1336
|
+
disconnectedCallback(): void;
|
|
1337
|
+
get splitEnabled(): boolean;
|
|
1338
|
+
enableSplit(storeKey: string): void;
|
|
1339
|
+
groupOf(name: string): string[] | null;
|
|
1340
|
+
canGroupWithActive(name: string): boolean;
|
|
1341
|
+
groupWithActive(name: string): void;
|
|
1342
|
+
groupTabs(a: string, b: string): void;
|
|
1343
|
+
ungroup(name: string): void;
|
|
1344
|
+
closeOthers(name: string): Promise<void>;
|
|
1345
|
+
closeAll(): Promise<void>;
|
|
1346
|
+
showTabMenu(name: string, x: number, y: number): void;
|
|
1347
|
+
onTabDropped(dragged: string, target: string): void;
|
|
1348
|
+
addTab(ti: TabItem, activate?: boolean): void;
|
|
1349
|
+
containsTab(name: string): boolean;
|
|
1350
|
+
removeTabAsync(name: string): Promise<boolean>;
|
|
1351
|
+
activateTab(indexOrName: number | string): boolean;
|
|
1352
|
+
getActiveTabItem(): TabItem | null;
|
|
1353
|
+
showHideTab(indexOrName: string | number, show: boolean): boolean;
|
|
1354
|
+
disableTab(indexOrName: string | number, disable: boolean): boolean;
|
|
1355
|
+
moveTo(name: string, other: TabContainer | IMainPanel, activate?: boolean): boolean;
|
|
1356
|
+
warnChildrenResize(start: boolean): void;
|
|
1357
|
+
get focused(): boolean;
|
|
1358
|
+
set focused(value: boolean);
|
|
1359
|
+
toogleFocus(): boolean;
|
|
1360
|
+
}
|
|
1361
|
+
declare class Tab extends BaseElement {
|
|
1362
|
+
item: TabItem;
|
|
1363
|
+
name: string;
|
|
1364
|
+
constructor(item: TabItem, _container: TabContainer);
|
|
1365
|
+
get splitShown(): boolean;
|
|
1366
|
+
set splitShown(value: boolean);
|
|
1367
|
+
protected onConnected(): void;
|
|
1368
|
+
protected onDisconnected(): void;
|
|
1369
|
+
get active(): boolean;
|
|
1370
|
+
set active(value: boolean);
|
|
1371
|
+
}
|
|
1372
|
+
declare class TabHeader extends BaseElement {
|
|
1373
|
+
tab: Tab;
|
|
1374
|
+
constructor(tabContainer: TabContainer, tab: Tab);
|
|
1375
|
+
set active(value: boolean);
|
|
1376
|
+
get active(): boolean;
|
|
1377
|
+
updateGroupState(): void;
|
|
1378
|
+
}
|
|
1379
|
+
export interface ServiceConfig {
|
|
1380
|
+
type?: ServiceTypes;
|
|
1381
|
+
creator?: CreatorFunc | any;
|
|
1382
|
+
}
|
|
1383
|
+
export interface IUserInfo<T = void> {
|
|
1384
|
+
id: number;
|
|
1385
|
+
key: string;
|
|
1386
|
+
title: string;
|
|
1387
|
+
auths: string[];
|
|
1388
|
+
props?: T;
|
|
1389
|
+
lastLoginDate?: string;
|
|
1390
|
+
role?: string;
|
|
1391
|
+
}
|
|
1392
|
+
export interface ILoginInfo {
|
|
1393
|
+
token: string;
|
|
1394
|
+
expires: number;
|
|
1395
|
+
user: IUserInfo;
|
|
1396
|
+
}
|
|
1397
|
+
export interface ILoginComponent extends BaseElement {
|
|
1398
|
+
onLogined: Eventer<ILoginInfo, any>;
|
|
1399
|
+
}
|
|
1400
|
+
export type AuthLocalProperties = {
|
|
1401
|
+
type: 'Local';
|
|
1402
|
+
autoLogin: boolean;
|
|
1403
|
+
createLoginComponent: () => ILoginComponent;
|
|
1404
|
+
loginInfoUrl: string;
|
|
1405
|
+
};
|
|
1406
|
+
export type AuthCookieProperties = {
|
|
1407
|
+
type: 'Cookie';
|
|
1408
|
+
logoutUrl: string;
|
|
1409
|
+
loginInfoUrl: string;
|
|
1410
|
+
};
|
|
1411
|
+
export type AuthProperties = AuthLocalProperties | AuthCookieProperties;
|
|
1412
|
+
export type AppMenuItemGroupInfo = {
|
|
1413
|
+
key: string;
|
|
1414
|
+
title: string;
|
|
1415
|
+
order: number;
|
|
1416
|
+
auth?: string;
|
|
1417
|
+
};
|
|
1418
|
+
export type AppMenuTabInfo = {
|
|
1419
|
+
key: string;
|
|
1420
|
+
title: string;
|
|
1421
|
+
items: AppMenuItemGroupInfo[];
|
|
1422
|
+
order: number;
|
|
1423
|
+
onDemand?: boolean;
|
|
1424
|
+
color?: string;
|
|
1425
|
+
auth?: string;
|
|
1426
|
+
};
|
|
1427
|
+
export type AppMenuProperties = {
|
|
1428
|
+
defaultTool: string;
|
|
1429
|
+
tabs: AppMenuTabInfo[];
|
|
1430
|
+
};
|
|
1431
|
+
export type ThemeInfo = {
|
|
1432
|
+
key: string;
|
|
1433
|
+
title: string;
|
|
1434
|
+
color1: string;
|
|
1435
|
+
color2: string;
|
|
1436
|
+
};
|
|
1437
|
+
export type ApplicationProperties = {
|
|
1438
|
+
title: string;
|
|
1439
|
+
subtitle?: string;
|
|
1440
|
+
hostElement: HTMLElement;
|
|
1441
|
+
auth: AuthProperties;
|
|
1442
|
+
apiEndPoint: string;
|
|
1443
|
+
logoUrl: string;
|
|
1444
|
+
defaultPage: string;
|
|
1445
|
+
ribbon: AppMenuProperties;
|
|
1446
|
+
appPageDisabled?: boolean;
|
|
1447
|
+
adminPageDisabled?: boolean;
|
|
1448
|
+
themes?: ThemeInfo[];
|
|
1449
|
+
languages?: LanguageCodes[];
|
|
1450
|
+
};
|
|
1451
|
+
export interface PageProperties {
|
|
1452
|
+
key: string;
|
|
1453
|
+
title: string;
|
|
1454
|
+
auth?: string;
|
|
1455
|
+
iconClass?: string;
|
|
1456
|
+
hasNavRibbon?: boolean;
|
|
1457
|
+
}
|
|
1458
|
+
export interface PagePartProperties {
|
|
1459
|
+
key: string;
|
|
1460
|
+
page: string;
|
|
1461
|
+
title: string;
|
|
1462
|
+
auth?: string;
|
|
1463
|
+
order?: number;
|
|
1464
|
+
defaultOpen?: boolean;
|
|
1465
|
+
}
|
|
1466
|
+
type BaseCommandProperties = {
|
|
1467
|
+
type: CommandTypes;
|
|
1468
|
+
container: 'ribbon' | string;
|
|
1469
|
+
key: string;
|
|
1470
|
+
title: string;
|
|
1471
|
+
group: string;
|
|
1472
|
+
order?: number;
|
|
1473
|
+
auth?: string;
|
|
1474
|
+
preload?: boolean;
|
|
1475
|
+
dependedResource?: string;
|
|
1476
|
+
visibleCondition?: () => boolean;
|
|
1477
|
+
};
|
|
1478
|
+
export type ActionCommandProperties = BaseCommandProperties & {
|
|
1479
|
+
type: CommandTypes.Command | CommandTypes.Tool;
|
|
1480
|
+
iconClass: string;
|
|
1481
|
+
};
|
|
1482
|
+
export type SelectCommandProperties = BaseCommandProperties & {
|
|
1483
|
+
type: CommandTypes.Select;
|
|
1484
|
+
mode?: 'select' | 'dropdown' | 'dropdown-selected';
|
|
1485
|
+
selectItems?: Array<ILookup & {
|
|
1486
|
+
iconClass?: string;
|
|
1487
|
+
}>;
|
|
1488
|
+
iconClass?: string;
|
|
1489
|
+
defaultKey?: LookupValue;
|
|
1490
|
+
};
|
|
1491
|
+
export type CustomCommandProperties = BaseCommandProperties & {
|
|
1492
|
+
type: CommandTypes.Custom;
|
|
1493
|
+
customElementCreator?: () => HTMLElement;
|
|
1494
|
+
};
|
|
1495
|
+
export type CommandProperties = ActionCommandProperties | SelectCommandProperties | CustomCommandProperties;
|
|
1496
|
+
export interface ICommand {
|
|
1497
|
+
start(childKey?: string, param?: any): void;
|
|
1498
|
+
enabled: boolean;
|
|
1499
|
+
active: boolean;
|
|
1500
|
+
}
|
|
1501
|
+
export interface ITool extends ICommand {
|
|
1502
|
+
cancel(): boolean;
|
|
1503
|
+
}
|
|
1504
|
+
export type StartupJobProperties = {
|
|
1505
|
+
type: StartupJobTypes;
|
|
1506
|
+
title: string;
|
|
1507
|
+
required: boolean;
|
|
1508
|
+
errorMessage?: string;
|
|
1509
|
+
order?: number;
|
|
1510
|
+
};
|
|
1511
|
+
export interface IAppStartupJob {
|
|
1512
|
+
name: string;
|
|
1513
|
+
run(): Promise<boolean>;
|
|
1514
|
+
}
|
|
1515
|
+
export type PageNavigatedEventArgs = {
|
|
1516
|
+
pageKey: string;
|
|
1517
|
+
pageTitle: string;
|
|
1518
|
+
fromPageKey: string;
|
|
1519
|
+
};
|
|
1520
|
+
export interface IMainPanel {
|
|
1521
|
+
openItemAsync(pos: PanelPos, item: TabItem, activate?: boolean): Promise<void>;
|
|
1522
|
+
closeItemAsync(name: string): Promise<boolean>;
|
|
1523
|
+
onResizeStatusChanged(start: boolean, pos: PanelPos, affecteds: PanelPos[]): void;
|
|
1524
|
+
dwcStart(blockedPos: PanelPos, item: TabItem): any;
|
|
1525
|
+
dwcStop(): any;
|
|
1526
|
+
get Center(): HTMLElement;
|
|
1527
|
+
get Left(): HTMLElement;
|
|
1528
|
+
get Right(): HTMLElement;
|
|
1529
|
+
get Bottom(): HTMLElement;
|
|
1530
|
+
}
|
|
1531
|
+
export interface IPanelManager {
|
|
1532
|
+
openPanelAsnc(item: TabItem, pos: PanelPos, activate?: boolean, focused?: boolean): Promise<void>;
|
|
1533
|
+
isPanelOpen(name: string): boolean;
|
|
1534
|
+
closePanelAsync(name: string): Promise<boolean | null>;
|
|
1535
|
+
movePanel(name: string, pos: PanelPos, activate?: boolean): void;
|
|
1536
|
+
activatePanel(name: string): boolean;
|
|
1537
|
+
getComponentOfPanel(name: string): HTMLElement | null;
|
|
1538
|
+
}
|
|
1539
|
+
export type FormFactoryProperties = {
|
|
1540
|
+
type: string;
|
|
1541
|
+
order: number;
|
|
1542
|
+
};
|
|
1543
|
+
export interface IFormFactory {
|
|
1544
|
+
name: string;
|
|
1545
|
+
createForm(row: AnObject, serviceKey: string, tableKey: string, targetType?: string): AsyncOpResult<HTMLElement>;
|
|
1546
|
+
}
|
|
1547
|
+
export interface ICommandDisplayer {
|
|
1548
|
+
setActive(key: string, value: boolean): any;
|
|
1549
|
+
setDisabled(key: string, value: boolean): any;
|
|
1550
|
+
isExist(): boolean;
|
|
1551
|
+
}
|
|
1552
|
+
export type PeriodicJobProperties = {
|
|
1553
|
+
key: string;
|
|
1554
|
+
tick: number;
|
|
1555
|
+
targetPage?: string;
|
|
1556
|
+
};
|
|
1557
|
+
export interface IPeriodicJob {
|
|
1558
|
+
name: string;
|
|
1559
|
+
run(): Promise<boolean>;
|
|
1560
|
+
}
|
|
1561
|
+
export type DependentResourceChangedEventArgs = {
|
|
1562
|
+
resource: string;
|
|
1563
|
+
status: boolean;
|
|
1564
|
+
};
|
|
1565
|
+
export type FocusChangedData = {
|
|
1566
|
+
focused: boolean;
|
|
1567
|
+
activeTab?: TabItem;
|
|
1568
|
+
};
|
|
1569
|
+
export class ButtonRadioChangedEvent extends Event {
|
|
1570
|
+
value: LookupValue;
|
|
1571
|
+
constructor(value: LookupValue);
|
|
1572
|
+
}
|
|
1573
|
+
type ButtonRadioEventMap = HTMLElementEventMap & {
|
|
1574
|
+
change: ButtonRadioChangedEvent;
|
|
1575
|
+
};
|
|
1576
|
+
export type ButtonRadioProperties = {
|
|
1577
|
+
source: LookupSource;
|
|
1578
|
+
asFormInput?: boolean;
|
|
1579
|
+
};
|
|
1580
|
+
export class ButtonRadio extends BaseFormInputComponent<LookupValue, ButtonRadioEventMap> {
|
|
1581
|
+
props: ButtonRadioProperties;
|
|
1582
|
+
constructor(props: ButtonRadioProperties);
|
|
1583
|
+
get value(): LookupValue;
|
|
1584
|
+
set value(val: LookupValue);
|
|
1585
|
+
getButton(key: LookupValue): HTMLButtonElement | null;
|
|
1586
|
+
addButton(lk: ILookup): void;
|
|
1587
|
+
removeButton(key: LookupValue): void;
|
|
1588
|
+
setDisabled(key: LookupValue, value: boolean): void;
|
|
1589
|
+
setValue(val: LookupValue, silent?: boolean): void;
|
|
1590
|
+
}
|
|
1591
|
+
export type ButtonListProperties = {
|
|
1592
|
+
orientation?: Orientation;
|
|
1593
|
+
align?: Alignment;
|
|
1594
|
+
gap?: string;
|
|
1595
|
+
};
|
|
1596
|
+
export class ButtonList extends BaseElement {
|
|
1597
|
+
constructor(properties: ButtonListProperties);
|
|
1598
|
+
}
|
|
1599
|
+
export type DropdownButtonProperties = {
|
|
1600
|
+
main: string | IKeyedButtonInfo;
|
|
1601
|
+
children: IKeyedButtonInfo[];
|
|
1602
|
+
clickAction: (info: IKeyedButtonInfo) => void;
|
|
1603
|
+
widthMode?: 'parent' | 'auto';
|
|
1604
|
+
rightAligned?: boolean;
|
|
1605
|
+
mainIconClass?: string;
|
|
1606
|
+
selectionMode?: {
|
|
1607
|
+
enabled: true;
|
|
1608
|
+
defaultKey: string;
|
|
1609
|
+
};
|
|
1610
|
+
};
|
|
1611
|
+
export class DropdownButton extends BaseElement {
|
|
1612
|
+
constructor(props: DropdownButtonProperties);
|
|
1613
|
+
getButton(key: string): HTMLButtonElement | null;
|
|
1614
|
+
addButton(info: IKeyedButtonInfo): void;
|
|
1615
|
+
removeButton(key: string): void;
|
|
1616
|
+
setDisabled(key: string, value: boolean | string): void;
|
|
1617
|
+
}
|
|
1618
|
+
export type CascadeProps = {
|
|
1619
|
+
parents?: IValueComponent<LookupValue | LookupValue[]>[];
|
|
1620
|
+
itemLoader?: LookupLoader<LookupValue[]>;
|
|
1621
|
+
initialItems?: ILookup[];
|
|
1622
|
+
};
|
|
1623
|
+
export type SearchParams = {
|
|
1624
|
+
text: string;
|
|
1625
|
+
parentValues?: LookupValue[];
|
|
1626
|
+
};
|
|
1627
|
+
export type SearchableProps = {
|
|
1628
|
+
itemLoader?: LookupLoader<SearchParams>;
|
|
1629
|
+
placeholder?: string;
|
|
1630
|
+
skipChangeValue?: boolean;
|
|
1631
|
+
minTextLen?: number;
|
|
1632
|
+
};
|
|
1633
|
+
export type BeforeSelectValidationFunc = AsyncAction<boolean, {
|
|
1634
|
+
new: LookupValue;
|
|
1635
|
+
old: LookupValue;
|
|
1636
|
+
}>;
|
|
1637
|
+
export class ComboBox extends BaseFormInputComponent<LookupValue> {
|
|
1638
|
+
onSearchSelected: Eventer<ILookup, void>;
|
|
1639
|
+
constructor(source: LookupSource<LookupValue[]> | CascadeProps, searchableProps?: SearchableProps, clearable?: boolean, beforeSelectValidation?: BeforeSelectValidationFunc);
|
|
1640
|
+
get items(): ILookup[];
|
|
1641
|
+
set items(items: ILookup[]);
|
|
1642
|
+
get selected(): ILookup;
|
|
1643
|
+
set selected(item: ILookup);
|
|
1644
|
+
get value(): LookupValue;
|
|
1645
|
+
set value(key: LookupValue);
|
|
1646
|
+
}
|
|
1647
|
+
export class NavRibbonManager implements ICommandDisplayer {
|
|
1648
|
+
readonly tabs: IRibbonTab[];
|
|
1649
|
+
readonly header: NavRibbonHeader;
|
|
1650
|
+
readonly body: NavRibbonBody;
|
|
1651
|
+
constructor();
|
|
1652
|
+
setActive(key: string, value: boolean): void;
|
|
1653
|
+
setDisabled(key: string, value: boolean): void;
|
|
1654
|
+
isExist(): boolean;
|
|
1655
|
+
findElement(key: string): HTMLElement | undefined;
|
|
1656
|
+
addTab(tab: IRibbonTab): void;
|
|
1657
|
+
removeTab(tabName: string): void;
|
|
1658
|
+
activateTab(tab: string | number): boolean;
|
|
1659
|
+
}
|
|
1660
|
+
export class NavRibbonHeader extends BaseElement {
|
|
1661
|
+
constructor(manager: NavRibbonManager);
|
|
1662
|
+
addTab(tab: IRibbonTab): void;
|
|
1663
|
+
removeTab(tabName: string): void;
|
|
1664
|
+
activateTab(key: string): void;
|
|
1665
|
+
}
|
|
1666
|
+
export class NavRibbonBody extends BaseElement {
|
|
1667
|
+
constructor(manager: NavRibbonManager);
|
|
1668
|
+
setActive(key: string, value: boolean): void;
|
|
1669
|
+
setDisabled(key: string, value: boolean): void;
|
|
1670
|
+
findElement(key: string): HTMLElement | undefined;
|
|
1671
|
+
addTab(tab: IRibbonTab): void;
|
|
1672
|
+
removeTab(tabName: string): void;
|
|
1673
|
+
activateTab(key: string): void;
|
|
1674
|
+
}
|
|
1675
|
+
export abstract class BasePage extends BaseElement {
|
|
1676
|
+
constructor();
|
|
1677
|
+
canClose(): Promise<boolean>;
|
|
1678
|
+
pageProps: PageProperties;
|
|
1679
|
+
abstract OnShow(): void;
|
|
1680
|
+
abstract OnHide(): void;
|
|
1681
|
+
getRibbonHeader(): NavRibbonHeader | null;
|
|
1682
|
+
}
|
|
1683
|
+
export abstract class BasePagePart extends BaseElement {
|
|
1684
|
+
constructor();
|
|
1685
|
+
canClose(): Promise<boolean>;
|
|
1686
|
+
abstract OnShow(): void;
|
|
1687
|
+
abstract OnHide(): void;
|
|
1688
|
+
}
|
|
1689
|
+
export type PagePartItem = {
|
|
1690
|
+
pagePart: BasePagePart;
|
|
1691
|
+
props: PagePartProperties;
|
|
1692
|
+
};
|
|
1693
|
+
export class LazyInstance<T> {
|
|
1694
|
+
constructor(_constructor: ClassType<T>);
|
|
1695
|
+
get instance(): T;
|
|
1696
|
+
get newInstance(): T;
|
|
1697
|
+
get isCreated(): boolean;
|
|
1698
|
+
reset(): void;
|
|
1699
|
+
}
|
|
1700
|
+
export class LasyInstanceMap<T, L extends LazyInstance<T>> {
|
|
1701
|
+
registerLazy(key: string, li: L): void;
|
|
1702
|
+
has(key: string): boolean;
|
|
1703
|
+
getLazy(key: string): L;
|
|
1704
|
+
get allItems(): L[];
|
|
1705
|
+
resetInstances(): void;
|
|
1706
|
+
}
|
|
1707
|
+
export class LazyCommand extends LazyInstance<ICommand> {
|
|
1708
|
+
config: CommandProperties;
|
|
1709
|
+
constructor(_constructor: ClassType<ICommand>, config: CommandProperties);
|
|
1710
|
+
}
|
|
1711
|
+
export class PageLazy extends LazyInstance<BasePage> {
|
|
1712
|
+
props: PageProperties;
|
|
1713
|
+
constructor(ctor: ClassType<BasePage>, props: PageProperties);
|
|
1714
|
+
}
|
|
1715
|
+
export class PagePartLazy extends LazyInstance<BasePagePart> {
|
|
1716
|
+
props: PagePartProperties;
|
|
1717
|
+
constructor(ctor: ClassType<BasePagePart>, props: PagePartProperties);
|
|
1718
|
+
}
|
|
1719
|
+
export class StartupJobLazy extends LazyInstance<IAppStartupJob> {
|
|
1720
|
+
config: StartupJobProperties;
|
|
1721
|
+
constructor(classType: ClassType<IAppStartupJob>, config: StartupJobProperties);
|
|
1722
|
+
}
|
|
1723
|
+
export class FormFactoryLazy extends LazyInstance<IFormFactory> {
|
|
1724
|
+
key: string;
|
|
1725
|
+
constructor(classType: ClassType<IFormFactory>, key: string);
|
|
1726
|
+
}
|
|
1727
|
+
export class PeriodicJobLazy extends LazyInstance<IPeriodicJob> {
|
|
1728
|
+
config: PeriodicJobProperties;
|
|
1729
|
+
constructor(classType: ClassType<IPeriodicJob>, config: PeriodicJobProperties);
|
|
1730
|
+
}
|
|
1731
|
+
export class ServiceItem {
|
|
1732
|
+
serviceType: ServiceTypes;
|
|
1733
|
+
constructor(_type: ClassType | string, config: ServiceConfig);
|
|
1734
|
+
getInstance(): any;
|
|
1735
|
+
onScopeChanged(): void;
|
|
1736
|
+
}
|
|
1737
|
+
declare class ServicePooler {
|
|
1738
|
+
register(type: ClassType, config: ServiceConfig): void;
|
|
1739
|
+
registerKeyed(key: string, type: ServiceTypes, service: AnObject | (() => any)): void;
|
|
1740
|
+
get<T>(type: any): T;
|
|
1741
|
+
find<T>(type: any): T | null;
|
|
1742
|
+
get scopeActive(): boolean;
|
|
1743
|
+
set scopeActive(value: boolean);
|
|
1744
|
+
}
|
|
1745
|
+
export const ServicePool: ServicePooler;
|
|
1746
|
+
export function Inject(): PropertyDecorator;
|
|
1747
|
+
export function Service(config?: ServiceConfig): ClassDecorator;
|
|
1748
|
+
export function ServiceKeyed(key: string, type: ServiceTypes): ClassDecorator;
|
|
1749
|
+
export abstract class PartContainerPage extends BasePage {
|
|
1750
|
+
leftMenu: HTMLDivElement;
|
|
1751
|
+
partSide: HTMLDivElement;
|
|
1752
|
+
partContainer: HTMLDivElement;
|
|
1753
|
+
activePart: BasePagePart;
|
|
1754
|
+
authService: AuthService;
|
|
1755
|
+
constructor(title: string);
|
|
1756
|
+
protected onConnected(isFirst?: boolean): void;
|
|
1757
|
+
loadParts(items: PagePartItem[]): void;
|
|
1758
|
+
_onMenuClicked(item: PagePartItem, menuItem: HTMLDivElement): void;
|
|
1759
|
+
}
|
|
1760
|
+
export class NavigationService {
|
|
1761
|
+
authService: AuthService;
|
|
1762
|
+
eventService: EventService;
|
|
1763
|
+
storeService: StoreService;
|
|
1764
|
+
constructor();
|
|
1765
|
+
init(pageContainerElement: HTMLElement, headerActionsContainer: HTMLDivElement): void;
|
|
1766
|
+
goto(key: string): Promise<boolean>;
|
|
1767
|
+
getUserPagesForNav(): PageProperties[];
|
|
1768
|
+
get headerActionsContainer(): HTMLDivElement;
|
|
1769
|
+
getDefaultPage(): Promise<string>;
|
|
1770
|
+
get activePage(): BasePage | null;
|
|
1771
|
+
}
|
|
1772
|
+
export function Command(cmdProps: CommandProperties): ClassDecorator;
|
|
1773
|
+
export function Page(properties: PageProperties): ClassDecorator;
|
|
1774
|
+
export function PagePart(properties: PagePartProperties): ClassDecorator;
|
|
1775
|
+
export function StartupJob(key: string, properties: StartupJobProperties): ClassDecorator;
|
|
1776
|
+
export function FormFactory(key: string): ClassDecorator;
|
|
1777
|
+
export function PeriodicJob(properties: PeriodicJobProperties): ClassDecorator;
|
|
1778
|
+
declare class SubPanel extends BaseElement {
|
|
1779
|
+
tabContainer: TabContainer;
|
|
1780
|
+
panelPos: PanelPos;
|
|
1781
|
+
onDragStarted: Eventer<{
|
|
1782
|
+
pos: PanelPos;
|
|
1783
|
+
item: TabItem;
|
|
1784
|
+
}>;
|
|
1785
|
+
eventService: EventService;
|
|
1786
|
+
storeService: StoreService;
|
|
1787
|
+
constructor(pos: PanelPos, mainPanel: IMainPanel);
|
|
1788
|
+
get collapsed(): boolean;
|
|
1789
|
+
set collapsed(value: boolean);
|
|
1790
|
+
}
|
|
1791
|
+
export class CommandService {
|
|
1792
|
+
eventService: EventService;
|
|
1793
|
+
authService: AuthService;
|
|
1794
|
+
storeService: StoreService;
|
|
1795
|
+
constructor();
|
|
1796
|
+
startCommand(key: string, childKey: string, param?: any): boolean;
|
|
1797
|
+
startDefault(): void;
|
|
1798
|
+
getCommandsFor(container: string, displayer: ICommandDisplayer): CommandProperties[];
|
|
1799
|
+
}
|
|
1800
|
+
declare class MainPanel extends BaseElement implements IMainPanel {
|
|
1801
|
+
storeService: StoreService;
|
|
1802
|
+
eventService: EventService;
|
|
1803
|
+
commandService: CommandService;
|
|
1804
|
+
constructor(_coverHeader: HTMLElement);
|
|
1805
|
+
connectedCallback(): void;
|
|
1806
|
+
dwcStart(blockedPos: PanelPos, item: TabItem): void;
|
|
1807
|
+
dwcStop(): void;
|
|
1808
|
+
openItemAsync(pos: PanelPos, item: TabItem, activate?: boolean, focused?: boolean, noremember?: boolean): Promise<void>;
|
|
1809
|
+
closeItemAsync(name: string): Promise<boolean>;
|
|
1810
|
+
moveItemTo(item: TabItem, pos: PanelPos, activate?: boolean): boolean;
|
|
1811
|
+
onResizeStatusChanged(start: boolean, pos: PanelPos, affecteds: PanelPos[]): void;
|
|
1812
|
+
findSubPanel(name: string): SubPanel | null;
|
|
1813
|
+
get Center(): SubPanel;
|
|
1814
|
+
get Left(): SubPanel;
|
|
1815
|
+
get Right(): SubPanel;
|
|
1816
|
+
get Bottom(): SubPanel;
|
|
1817
|
+
}
|
|
1818
|
+
export class Application implements IPanelManager {
|
|
1819
|
+
eventService: EventService;
|
|
1820
|
+
constructor();
|
|
1821
|
+
start(mainPanel: MainPanel): Promise<boolean>;
|
|
1822
|
+
openPanel(item: TabItem, pos: PanelPos, activate?: boolean): void;
|
|
1823
|
+
openPanelAsnc(item: TabItem, pos: PanelPos, activate?: boolean, focused?: boolean): Promise<void>;
|
|
1824
|
+
isPanelOpen(name: string): boolean;
|
|
1825
|
+
closePanelAsync(name: string): Promise<boolean | null>;
|
|
1826
|
+
movePanel(name: string, pos: PanelPos, activate?: boolean): void;
|
|
1827
|
+
activatePanel(name: string): boolean;
|
|
1828
|
+
getComponentOfPanel(name: string): HTMLElement;
|
|
1829
|
+
}
|
|
1830
|
+
export class DateHelper {
|
|
1831
|
+
static epcToIsoStr(epctime: number): string;
|
|
1832
|
+
static epcToDate(epctime: number): Date;
|
|
1833
|
+
static dateToIsoStr(date?: Date): string | null;
|
|
1834
|
+
static isoStrToDate(str?: string): Date | null;
|
|
1835
|
+
static nowAsIsoStr(): string;
|
|
1836
|
+
static formatIsoStr(value: string, defaultValue?: string): string;
|
|
1837
|
+
static formatDate(value: Date, defaultValue?: string): string;
|
|
1838
|
+
formatDuration(inputSeconds: number): string;
|
|
1839
|
+
compareIsoStrAsc: (a: string, b: string) => number;
|
|
1840
|
+
compareIsoStrDesc: (a: string, b: string) => number;
|
|
1841
|
+
compareDateAsc: (a: Date, b: Date) => number;
|
|
1842
|
+
compareDateDesc: (a: Date, b: Date) => number;
|
|
1843
|
+
}
|
|
1844
|
+
export class FlatLookup<T extends LookupValue = string> implements ILookup {
|
|
1845
|
+
constructor(val: T);
|
|
1846
|
+
get key(): T;
|
|
1847
|
+
set key(value: T);
|
|
1848
|
+
get title(): string;
|
|
1849
|
+
set title(value: string);
|
|
1850
|
+
}
|
|
1851
|
+
export function ScreenshotStarter(): void;
|
|
1852
|
+
declare global {
|
|
1853
|
+
interface Array<T> {
|
|
1854
|
+
removeAt(index: number): boolean;
|
|
1855
|
+
remove(item: T): boolean;
|
|
1856
|
+
toFlatlookup(): ILookup[];
|
|
1857
|
+
}
|
|
1858
|
+
interface HTMLElement {
|
|
1859
|
+
setClasses<T extends HTMLElement>(...value: string[]): T;
|
|
1860
|
+
setStyles<T extends HTMLElement>(styles?: Partial<CSSStyleDeclaration>): T;
|
|
1861
|
+
setAttributes<T extends HTMLElement>(attrs: Record<string, string>): T;
|
|
1862
|
+
appendChildren(...elements: HTMLElement[]): void;
|
|
1863
|
+
clearChildren(): void;
|
|
1864
|
+
showhide(visible: boolean): void;
|
|
1865
|
+
appendChildAsync<T extends HTMLElement>(element: T): Promise<T>;
|
|
1866
|
+
get active(): boolean;
|
|
1867
|
+
set active(value: boolean);
|
|
1868
|
+
get disabled(): boolean;
|
|
1869
|
+
set disabled(value: boolean);
|
|
1870
|
+
get childrenElements(): HTMLElement[];
|
|
1871
|
+
get unauthorized(): boolean;
|
|
1872
|
+
set unauthorized(value: boolean);
|
|
1873
|
+
get restricted(): boolean;
|
|
1874
|
+
set restricted(value: boolean);
|
|
1875
|
+
anchorElement: HTMLElement | null;
|
|
1876
|
+
}
|
|
1877
|
+
interface String {
|
|
1878
|
+
format(...params: string[]): string;
|
|
1879
|
+
}
|
|
1880
|
+
interface Date {
|
|
1881
|
+
toStr(skipTime?: boolean): string;
|
|
1882
|
+
}
|
|
1883
|
+
}
|
|
1884
|
+
export type ListChangeInfo<T> = {
|
|
1885
|
+
added?: T[];
|
|
1886
|
+
removed?: T[];
|
|
1887
|
+
replaced?: {
|
|
1888
|
+
old: T;
|
|
1889
|
+
new: T;
|
|
1890
|
+
};
|
|
1891
|
+
sorted?: boolean;
|
|
1892
|
+
};
|
|
1893
|
+
export class List<T> implements ISimpleArray<T> {
|
|
1894
|
+
readonly [n: number]: T;
|
|
1895
|
+
get length(): number;
|
|
1896
|
+
readonly changeEvent: Eventer<ListChangeInfo<T>, void>;
|
|
1897
|
+
constructor(...arr: T[]);
|
|
1898
|
+
[Symbol.iterator](): Generator<T, void, unknown>;
|
|
1899
|
+
add(item: T): void;
|
|
1900
|
+
addMany(...items: T[]): void;
|
|
1901
|
+
getAt(inx: number): T | null;
|
|
1902
|
+
setAt(inx: number, item: T): boolean;
|
|
1903
|
+
remove(item: T): boolean;
|
|
1904
|
+
removeMany(...items: T[]): boolean;
|
|
1905
|
+
removeAt(inx: number): boolean;
|
|
1906
|
+
clear(): void;
|
|
1907
|
+
indexOf(item: T): number;
|
|
1908
|
+
contains(item: T): boolean;
|
|
1909
|
+
find(predicate: (value: T) => boolean): T;
|
|
1910
|
+
filter(predicate: (value: T) => boolean): T[];
|
|
1911
|
+
map<U>(callbackfn: (value: T) => U): U[];
|
|
1912
|
+
forEach(callbackfn: (value: T) => void): void;
|
|
1913
|
+
sort(callbackfn: (a: T, b: T) => number): void;
|
|
1914
|
+
toArray(): T[];
|
|
1915
|
+
}
|
|
1916
|
+
export abstract class Observable implements IObservable {
|
|
1917
|
+
readonly onPropChanged: Eventer<PropChangeInfo, void>;
|
|
1918
|
+
raisePropChanged(info: PropChangeInfo): void;
|
|
1919
|
+
static simplifyForJson(object: IObservable): any;
|
|
1920
|
+
}
|
|
1921
|
+
export function Observe(): PropertyDecorator;
|
|
1922
|
+
export function MakePropObservable(target: AnObject, propertyKey: string | symbol): void;
|
|
1923
|
+
export function encryptAsync(text: string): Promise<string>;
|
|
1924
|
+
export function decryptAsync(encryptedBase64: string): Promise<string>;
|
|
1925
|
+
export class AccordionToggleEvent extends Event {
|
|
1926
|
+
visible: boolean;
|
|
1927
|
+
constructor(visible: boolean);
|
|
1928
|
+
}
|
|
1929
|
+
type AccordionEventMap = HTMLElementEventMap & {
|
|
1930
|
+
visibleChanged: AccordionToggleEvent;
|
|
1931
|
+
};
|
|
1932
|
+
export type AccordionProperties = {
|
|
1933
|
+
header: string | HTMLElement;
|
|
1934
|
+
content: string | HTMLElement | AsyncOperation<HTMLElement>;
|
|
1935
|
+
};
|
|
1936
|
+
export class Accordion extends BaseElement<AccordionEventMap> {
|
|
1937
|
+
protected props: AccordionProperties;
|
|
1938
|
+
protected _isOpen: boolean;
|
|
1939
|
+
protected _header: HTMLElement;
|
|
1940
|
+
protected _body: HTMLElement;
|
|
1941
|
+
constructor(props: AccordionProperties);
|
|
1942
|
+
protected onConnected(isFirst?: boolean): Promise<void>;
|
|
1943
|
+
get isOpen(): boolean;
|
|
1944
|
+
set isOpen(value: boolean);
|
|
1945
|
+
get header(): string | HTMLElement;
|
|
1946
|
+
set header(value: string | HTMLElement);
|
|
1947
|
+
get content(): string | HTMLElement;
|
|
1948
|
+
set content(value: string | HTMLElement);
|
|
1949
|
+
toggle(): void;
|
|
1950
|
+
}
|
|
1951
|
+
export type AutoCompleteProperties = {
|
|
1952
|
+
loader: LookupSource<string>;
|
|
1953
|
+
allowFreeText?: boolean;
|
|
1954
|
+
value?: string;
|
|
1955
|
+
placeholder?: string;
|
|
1956
|
+
minLenght?: number;
|
|
1957
|
+
};
|
|
1958
|
+
export class AutoComplete extends BaseFormInputComponent<LookupValue> {
|
|
1959
|
+
constructor(_props: AutoCompleteProperties);
|
|
1960
|
+
protected onConnected(isFirst?: boolean): void;
|
|
1961
|
+
set value(value: LookupValue);
|
|
1962
|
+
get value(): LookupValue;
|
|
1963
|
+
set selected(value: ILookup);
|
|
1964
|
+
get selected(): ILookup;
|
|
1965
|
+
}
|
|
1966
|
+
export type CardProperties = {
|
|
1967
|
+
imageUrl?: string;
|
|
1968
|
+
title?: string;
|
|
1969
|
+
subtitle?: string;
|
|
1970
|
+
content: HTMLElement | string;
|
|
1971
|
+
};
|
|
1972
|
+
export class Card extends BaseElement {
|
|
1973
|
+
constructor(_props: CardProperties);
|
|
1974
|
+
protected onConnected(isFirst?: boolean): void;
|
|
1975
|
+
}
|
|
1976
|
+
export type ToolbarProperties = {
|
|
1977
|
+
orientation?: Orientation;
|
|
1978
|
+
align?: Alignment;
|
|
1979
|
+
gap?: string;
|
|
1980
|
+
flat?: boolean;
|
|
1981
|
+
items?: IKeyedButtonInfo[];
|
|
1982
|
+
};
|
|
1983
|
+
export class Toolbar extends ButtonList implements ICommandDisplayer {
|
|
1984
|
+
ItemClicked: Eventer<IKeyedButtonInfo>;
|
|
1985
|
+
constructor(props?: ToolbarProperties);
|
|
1986
|
+
setActive(key: string, value: boolean): void;
|
|
1987
|
+
setDisabled(key: string, value: boolean): void;
|
|
1988
|
+
set items(items: IKeyedButtonInfo[]);
|
|
1989
|
+
get items(): IKeyedButtonInfo[];
|
|
1990
|
+
getButton(key: string): HTMLButtonElement | null;
|
|
1991
|
+
addButton(info: IKeyedButtonInfo): void;
|
|
1992
|
+
removeButton(key: string): void;
|
|
1993
|
+
}
|
|
1994
|
+
export type GroupBoxModes = 'card' | 'frame' | 'flat';
|
|
1995
|
+
export type GroupBoxProperties = {
|
|
1996
|
+
mode: GroupBoxModes;
|
|
1997
|
+
caption: string;
|
|
1998
|
+
iconClass?: string;
|
|
1999
|
+
actions?: IKeyedButtonInfo[];
|
|
2000
|
+
};
|
|
2001
|
+
export class GroupBox extends BaseElement {
|
|
2002
|
+
ActionClicked: Eventer<IKeyedButtonInfo>;
|
|
2003
|
+
Toolbar: Toolbar;
|
|
2004
|
+
constructor(captionOrOptions: string | GroupBoxProperties, ...elements: HTMLElement[]);
|
|
2005
|
+
set actions(value: IKeyedButtonInfo[]);
|
|
2006
|
+
get actions(): IKeyedButtonInfo[];
|
|
2007
|
+
setActionActive(key: string, value: boolean): void;
|
|
2008
|
+
setActionDisabled(key: string, value: boolean): void;
|
|
2009
|
+
addChild<T extends Node>(node: T): T;
|
|
2010
|
+
deleteChild<T extends Node>(node: T): T;
|
|
2011
|
+
addChildren(...nodes: HTMLElement[]): void;
|
|
2012
|
+
get body(): HTMLDivElement;
|
|
2013
|
+
get allChildren(): HTMLElement[];
|
|
2014
|
+
get caption(): string;
|
|
2015
|
+
set caption(value: string);
|
|
2016
|
+
set iconClass(value: string);
|
|
2017
|
+
get headerVisible(): boolean;
|
|
2018
|
+
set headerVisible(value: boolean);
|
|
2019
|
+
get flat(): boolean;
|
|
2020
|
+
set flat(value: boolean);
|
|
2021
|
+
get frame(): boolean;
|
|
2022
|
+
set frame(value: boolean);
|
|
2023
|
+
get card(): boolean;
|
|
2024
|
+
set card(value: boolean);
|
|
2025
|
+
}
|
|
2026
|
+
export interface GrouppedListProperties<T> extends BaseListProperties<T> {
|
|
2027
|
+
groupInfos?: ILookup[];
|
|
2028
|
+
enableGroupSelect?: boolean;
|
|
2029
|
+
}
|
|
2030
|
+
export class GrouppedListComponent<T> extends BaseListComponent<T> {
|
|
2031
|
+
constructor(props: GrouppedListProperties<T>);
|
|
2032
|
+
protected _onCreateCustomItems(): void;
|
|
2033
|
+
protected _addElementItem(item: T, elm: IndexedElement): void;
|
|
2034
|
+
protected _onAfterSourceChanged(change: IndexedListChangeInfo<T>): void;
|
|
2035
|
+
}
|
|
2036
|
+
export type CheckListProperties = {
|
|
2037
|
+
items: LookupSource<void>;
|
|
2038
|
+
selecteds?: LookupValue[];
|
|
2039
|
+
groupInfos?: ILookup[];
|
|
2040
|
+
selectAllButtons?: boolean;
|
|
2041
|
+
orderButtons?: boolean;
|
|
2042
|
+
};
|
|
2043
|
+
export class CheckList extends BaseFormInputComponent<LookupValue[]> {
|
|
2044
|
+
onSelectChanged: Eventer<ILookup, void>;
|
|
2045
|
+
constructor(props: CheckListProperties);
|
|
2046
|
+
get value(): LookupValue[];
|
|
2047
|
+
set value(val: LookupValue[]);
|
|
2048
|
+
unselectAll(): void;
|
|
2049
|
+
selectAll(): void;
|
|
2050
|
+
}
|
|
2051
|
+
export type MultiCascadeProps = {
|
|
2052
|
+
parents?: IValueComponent<LookupValue | LookupValue[]>[];
|
|
2053
|
+
itemLoader?: LookupLoader<LookupValue[]>;
|
|
2054
|
+
};
|
|
2055
|
+
export class MultiComboBox extends BaseFormInputComponent<LookupValue[]> {
|
|
2056
|
+
constructor(source: LookupSource<LookupValue[]> | MultiCascadeProps, placeholder?: string, _clickToClose?: boolean);
|
|
2057
|
+
protected onConnected(isFirst?: boolean): void;
|
|
2058
|
+
get items(): ILookup[];
|
|
2059
|
+
set items(items: ILookup[]);
|
|
2060
|
+
get selectedItems(): ILookup[];
|
|
2061
|
+
get placeholder(): string;
|
|
2062
|
+
set placeholder(value: string);
|
|
2063
|
+
get value(): LookupValue[];
|
|
2064
|
+
set value(keys: LookupValue[]);
|
|
2065
|
+
clearSelection(): void;
|
|
2066
|
+
selectAll(): void;
|
|
2067
|
+
removeItem(key: LookupValue): void;
|
|
2068
|
+
}
|
|
2069
|
+
export type HtmlElementLike = HTMLElement | ((...params: any[]) => HTMLElement);
|
|
2070
|
+
export class ConditionalElement extends BaseElement {
|
|
2071
|
+
constructor(observingItem: IObservable, observingProp: string, trueElement: HtmlElementLike, falseElement?: HtmlElementLike);
|
|
2072
|
+
}
|
|
2073
|
+
export type DateRangeProperties = {
|
|
2074
|
+
inputType?: 'date' | 'datetime-local';
|
|
2075
|
+
startLabel?: string;
|
|
2076
|
+
endLabel?: string;
|
|
2077
|
+
requiresDoneButton?: boolean;
|
|
2078
|
+
shortcuts?: DateRangeShortcut[] | boolean;
|
|
2079
|
+
minDate?: Date;
|
|
2080
|
+
maxDate?: Date;
|
|
2081
|
+
};
|
|
2082
|
+
export type DropDownDateRangeProperties = DateRangeProperties & {
|
|
2083
|
+
widthMode?: 'parent' | 'auto';
|
|
2084
|
+
rightAligned?: boolean;
|
|
2085
|
+
};
|
|
2086
|
+
export type DateRangeValue = {
|
|
2087
|
+
startDate: Date | null;
|
|
2088
|
+
endDate: Date | null;
|
|
2089
|
+
};
|
|
2090
|
+
export type DateRangeShortcut = {
|
|
2091
|
+
label: string;
|
|
2092
|
+
getValue: () => DateRangeValue;
|
|
2093
|
+
iconClass?: string;
|
|
2094
|
+
};
|
|
2095
|
+
export class DateRangeComponent extends BaseFormInputComponent<DateRangeValue> {
|
|
2096
|
+
_inputType: 'date' | 'datetime-local';
|
|
2097
|
+
constructor(props?: DateRangeProperties);
|
|
2098
|
+
protected onConnected(isFirst?: boolean): void;
|
|
2099
|
+
get value(): DateRangeValue;
|
|
2100
|
+
set value(dateRange: DateRangeValue);
|
|
2101
|
+
get startDate(): Date | null;
|
|
2102
|
+
set startDate(date: Date | null);
|
|
2103
|
+
get endDate(): Date | null;
|
|
2104
|
+
set endDate(date: Date | null);
|
|
2105
|
+
get minDate(): string | null;
|
|
2106
|
+
set minDate(dateStr: string | null);
|
|
2107
|
+
get maxDate(): string | null;
|
|
2108
|
+
set maxDate(dateStr: string | null);
|
|
2109
|
+
clearDates(): void;
|
|
2110
|
+
isValidRange(): boolean;
|
|
2111
|
+
getDaysDifference(): number | null;
|
|
2112
|
+
}
|
|
2113
|
+
export class DropDownDateRange extends BaseFormInputComponent<DateRangeValue> {
|
|
2114
|
+
constructor(props?: DropDownDateRangeProperties);
|
|
2115
|
+
onReadonlychanged(): void;
|
|
2116
|
+
get value(): DateRangeValue;
|
|
2117
|
+
set value(value: DateRangeValue);
|
|
2118
|
+
get startDate(): Date | null;
|
|
2119
|
+
set startDate(date: Date | null);
|
|
2120
|
+
get endDate(): Date | null;
|
|
2121
|
+
set endDate(date: Date | null);
|
|
2122
|
+
get minDate(): string | null;
|
|
2123
|
+
set minDate(dateStr: string | null);
|
|
2124
|
+
get maxDate(): string | null;
|
|
2125
|
+
set maxDate(dateStr: string | null);
|
|
2126
|
+
clearDates(): void;
|
|
2127
|
+
isValidRange(): boolean;
|
|
2128
|
+
getDaysDifference(): number | null;
|
|
2129
|
+
}
|
|
2130
|
+
export const DateRangeShortcuts: {
|
|
2131
|
+
Last_Hour_1: {
|
|
2132
|
+
label: string;
|
|
2133
|
+
iconClass: string;
|
|
2134
|
+
getValue: () => {
|
|
2135
|
+
startDate: Date;
|
|
2136
|
+
endDate: Date;
|
|
2137
|
+
};
|
|
2138
|
+
};
|
|
2139
|
+
Last_Hour_2: {
|
|
2140
|
+
label: string;
|
|
2141
|
+
iconClass: string;
|
|
2142
|
+
getValue: () => {
|
|
2143
|
+
startDate: Date;
|
|
2144
|
+
endDate: Date;
|
|
2145
|
+
};
|
|
2146
|
+
};
|
|
2147
|
+
Last_Hour_6: {
|
|
2148
|
+
label: string;
|
|
2149
|
+
iconClass: string;
|
|
2150
|
+
getValue: () => {
|
|
2151
|
+
startDate: Date;
|
|
2152
|
+
endDate: Date;
|
|
2153
|
+
};
|
|
2154
|
+
};
|
|
2155
|
+
Last_Hour_12: {
|
|
2156
|
+
label: string;
|
|
2157
|
+
iconClass: string;
|
|
2158
|
+
getValue: () => {
|
|
2159
|
+
startDate: Date;
|
|
2160
|
+
endDate: Date;
|
|
2161
|
+
};
|
|
2162
|
+
};
|
|
2163
|
+
Today: {
|
|
2164
|
+
label: string;
|
|
2165
|
+
iconClass: string;
|
|
2166
|
+
getValue: () => {
|
|
2167
|
+
startDate: Date;
|
|
2168
|
+
endDate: Date;
|
|
2169
|
+
};
|
|
2170
|
+
};
|
|
2171
|
+
Yesterday: {
|
|
2172
|
+
label: string;
|
|
2173
|
+
iconClass: string;
|
|
2174
|
+
getValue: () => {
|
|
2175
|
+
startDate: Date;
|
|
2176
|
+
endDate: Date;
|
|
2177
|
+
};
|
|
2178
|
+
};
|
|
2179
|
+
Last_Day_2: {
|
|
2180
|
+
label: string;
|
|
2181
|
+
iconClass: string;
|
|
2182
|
+
getValue: () => {
|
|
2183
|
+
startDate: Date;
|
|
2184
|
+
endDate: Date;
|
|
2185
|
+
};
|
|
2186
|
+
};
|
|
2187
|
+
Last_Day_3: {
|
|
2188
|
+
label: string;
|
|
2189
|
+
iconClass: string;
|
|
2190
|
+
getValue: () => {
|
|
2191
|
+
startDate: Date;
|
|
2192
|
+
endDate: Date;
|
|
2193
|
+
};
|
|
2194
|
+
};
|
|
2195
|
+
Last_Day_7: {
|
|
2196
|
+
label: string;
|
|
2197
|
+
iconClass: string;
|
|
2198
|
+
getValue: () => {
|
|
2199
|
+
startDate: Date;
|
|
2200
|
+
endDate: Date;
|
|
2201
|
+
};
|
|
2202
|
+
};
|
|
2203
|
+
Last_Day_14: {
|
|
2204
|
+
label: string;
|
|
2205
|
+
iconClass: string;
|
|
2206
|
+
getValue: () => {
|
|
2207
|
+
startDate: Date;
|
|
2208
|
+
endDate: Date;
|
|
2209
|
+
};
|
|
2210
|
+
};
|
|
2211
|
+
This_Month: {
|
|
2212
|
+
label: string;
|
|
2213
|
+
iconClass: string;
|
|
2214
|
+
getValue: () => {
|
|
2215
|
+
startDate: Date;
|
|
2216
|
+
endDate: Date;
|
|
2217
|
+
};
|
|
2218
|
+
};
|
|
2219
|
+
This_Month_UntilNow: {
|
|
2220
|
+
label: string;
|
|
2221
|
+
iconClass: string;
|
|
2222
|
+
getValue: () => {
|
|
2223
|
+
startDate: Date;
|
|
2224
|
+
endDate: Date;
|
|
2225
|
+
};
|
|
2226
|
+
};
|
|
2227
|
+
Recent_Month: {
|
|
2228
|
+
label: string;
|
|
2229
|
+
iconClass: string;
|
|
2230
|
+
getValue: () => {
|
|
2231
|
+
startDate: Date;
|
|
2232
|
+
endDate: Date;
|
|
2233
|
+
};
|
|
2234
|
+
};
|
|
2235
|
+
Last_Month_2: {
|
|
2236
|
+
label: string;
|
|
2237
|
+
iconClass: string;
|
|
2238
|
+
getValue: () => {
|
|
2239
|
+
startDate: Date;
|
|
2240
|
+
endDate: Date;
|
|
2241
|
+
};
|
|
2242
|
+
};
|
|
2243
|
+
Last_Month_3: {
|
|
2244
|
+
label: string;
|
|
2245
|
+
iconClass: string;
|
|
2246
|
+
getValue: () => {
|
|
2247
|
+
startDate: Date;
|
|
2248
|
+
endDate: Date;
|
|
2249
|
+
};
|
|
2250
|
+
};
|
|
2251
|
+
Last_Month_6: {
|
|
2252
|
+
label: string;
|
|
2253
|
+
iconClass: string;
|
|
2254
|
+
getValue: () => {
|
|
2255
|
+
startDate: Date;
|
|
2256
|
+
endDate: Date;
|
|
2257
|
+
};
|
|
2258
|
+
};
|
|
2259
|
+
};
|
|
2260
|
+
export type DtTone = 'info' | 'brand' | 'success' | 'danger' | 'warning' | 'neutral';
|
|
2261
|
+
export type DtPillMap = Record<string, {
|
|
2262
|
+
tone: DtTone;
|
|
2263
|
+
text?: string;
|
|
2264
|
+
}>;
|
|
2265
|
+
export type DtFormatter = (cell: CellComponent, formatterParams?: any, onRendered?: (callback: () => void) => void) => string | HTMLElement;
|
|
2266
|
+
export type DtActionButton<T = any> = {
|
|
2267
|
+
text: string;
|
|
2268
|
+
iconClass?: string;
|
|
2269
|
+
primary?: boolean;
|
|
2270
|
+
tooltip?: string;
|
|
2271
|
+
visible?: (data: T) => boolean;
|
|
2272
|
+
onClick: (data: T, row: RowComponent) => void;
|
|
2273
|
+
};
|
|
2274
|
+
export const DtRenderers: {
|
|
2275
|
+
pill(text: string, tone?: DtTone, withDot?: boolean): HTMLElement;
|
|
2276
|
+
text: DtFormatter;
|
|
2277
|
+
muted(values: string[]): DtFormatter;
|
|
2278
|
+
status(map: DtPillMap): DtFormatter;
|
|
2279
|
+
priority(map?: DtPillMap): DtFormatter;
|
|
2280
|
+
tag(): DtFormatter;
|
|
2281
|
+
remainingDays<T = any>(opts?: {
|
|
2282
|
+
isCompleted?: (data: T) => boolean;
|
|
2283
|
+
suffix?: string;
|
|
2284
|
+
}): DtFormatter;
|
|
2285
|
+
toggle<T_1 = any>(onChange: (data: T_1, value: boolean, cell: CellComponent) => Promise<boolean> | boolean, opts?: {
|
|
2286
|
+
disabled?: (data: T_1) => boolean;
|
|
2287
|
+
}): DtFormatter;
|
|
2288
|
+
toggleElement(checked: boolean, disabled: boolean, onChange: (value: boolean) => Promise<boolean> | boolean): HTMLInputElement;
|
|
2289
|
+
actions<T_2 = any>(buttons: DtActionButton<T_2>[]): DtFormatter;
|
|
2290
|
+
};
|
|
2291
|
+
export type DataTableDensity = 'compact' | 'comfortable';
|
|
2292
|
+
declare class DataTableDensityState {
|
|
2293
|
+
get current(): DataTableDensity;
|
|
2294
|
+
load(store: StoreService): Promise<void>;
|
|
2295
|
+
set(store: StoreService, value: DataTableDensity): void;
|
|
2296
|
+
}
|
|
2297
|
+
export const DtDensity: DataTableDensityState;
|
|
2298
|
+
export type MessageBoxButtonTypes = 'Ok' | 'OkCancel' | 'YesNo';
|
|
2299
|
+
export type MessageBoxProperties = {
|
|
2300
|
+
content: string | BaseFormElement | HTMLElement;
|
|
2301
|
+
title?: string;
|
|
2302
|
+
buttons?: MessageBoxButtonTypes;
|
|
2303
|
+
style?: MessageBoxStyles;
|
|
2304
|
+
okText?: string;
|
|
2305
|
+
cancelText?: string;
|
|
2306
|
+
container?: HTMLElement;
|
|
2307
|
+
approveText?: string;
|
|
2308
|
+
displayFormErrorNotification?: boolean;
|
|
2309
|
+
};
|
|
2310
|
+
export type IContentBoxButtonInfo = IKeyedButtonInfo & {
|
|
2311
|
+
accept?: boolean;
|
|
2312
|
+
keepOpen?: boolean;
|
|
2313
|
+
onClick?: () => void;
|
|
2314
|
+
};
|
|
2315
|
+
export type ContentBoxProperties = {
|
|
2316
|
+
content: string | BaseFormElement | HTMLElement;
|
|
2317
|
+
buttons: IContentBoxButtonInfo[];
|
|
2318
|
+
title?: string;
|
|
2319
|
+
container?: HTMLElement;
|
|
2320
|
+
};
|
|
2321
|
+
export type MessageBoxResult<T = any> = {
|
|
2322
|
+
ok: boolean;
|
|
2323
|
+
data?: T;
|
|
2324
|
+
};
|
|
2325
|
+
export type ContentBoxResult<T = any> = {
|
|
2326
|
+
key: string;
|
|
2327
|
+
data?: T;
|
|
2328
|
+
};
|
|
2329
|
+
export class MessageBox {
|
|
2330
|
+
static Error(message: string, title?: string, container?: HTMLElement): Promise<void>;
|
|
2331
|
+
static Success(message: string, title?: string, container?: HTMLElement): Promise<void>;
|
|
2332
|
+
static Warning(message: string, title?: string, container?: HTMLElement): Promise<void>;
|
|
2333
|
+
static Info(message: string, title?: string, container?: HTMLElement): Promise<void>;
|
|
2334
|
+
static ShowOk(message: string, title?: string, container?: HTMLElement, approveText?: string): Promise<boolean>;
|
|
2335
|
+
static Yesno(message: string, title?: string, style?: MessageBoxStyles, container?: HTMLElement, approveText?: string): Promise<boolean>;
|
|
2336
|
+
static InputText(title: string, type?: 'text' | 'textarea', container?: HTMLElement): Promise<string>;
|
|
2337
|
+
static ShowAsync(props: MessageBoxProperties): Promise<MessageBoxResult | null>;
|
|
2338
|
+
static ShowContentBoxAsync<T = any>(props: ContentBoxProperties): Promise<ContentBoxResult<T> | null>;
|
|
2339
|
+
}
|
|
2340
|
+
export function ShowYesNoDisplayAtAsync(elm: HTMLElement, type: MessageBoxStyles, message: string): Promise<boolean>;
|
|
2341
|
+
export const PersistenceStoreService = "storeService";
|
|
2342
|
+
export type ModelKeys<T> = Extract<keyof T, string>;
|
|
2343
|
+
export type ModelColumn = ColumnDefinition & {
|
|
2344
|
+
order?: number;
|
|
2345
|
+
initialHidden?: boolean;
|
|
2346
|
+
hide?: boolean;
|
|
2347
|
+
mono?: boolean;
|
|
2348
|
+
};
|
|
2349
|
+
export type ModelColumnsInfo<T> = {
|
|
2350
|
+
[alias in ModelKeys<Partial<T>>]: ModelColumn;
|
|
2351
|
+
};
|
|
2352
|
+
export type TableActionInfo<T> = IButtonInfo & {
|
|
2353
|
+
action: (selectedItems?: T[], allItems?: T[]) => Promise<void>;
|
|
2354
|
+
enabledFnc?: (selectedItems: T[]) => boolean | string;
|
|
2355
|
+
key?: string;
|
|
2356
|
+
bulk?: boolean;
|
|
2357
|
+
};
|
|
2358
|
+
export type DataTableSegment = {
|
|
2359
|
+
key: string;
|
|
2360
|
+
title: string;
|
|
2361
|
+
filters?: Filter[];
|
|
2362
|
+
};
|
|
2363
|
+
export type RowActionInfo<T> = IButtonInfo & {
|
|
2364
|
+
action: (item: T, row: RowComponent, btn: HTMLButtonElement) => Promise<void>;
|
|
2365
|
+
visibleFilter?: (data: T) => boolean;
|
|
2366
|
+
disableWhen?: (data: T) => boolean | string;
|
|
2367
|
+
contextMenu?: boolean;
|
|
2368
|
+
atFirstCol?: boolean;
|
|
2369
|
+
};
|
|
2370
|
+
export type DetailInfo<C = {}> = {
|
|
2371
|
+
title: string;
|
|
2372
|
+
fieldName: string;
|
|
2373
|
+
componentFactory: (colData: C, row: RowComponent) => HTMLElement & IDataDetailComponent<C>;
|
|
2374
|
+
flatDataProps?: {
|
|
2375
|
+
flatterAction: Action<{
|
|
2376
|
+
[alias in Extract<keyof C, string>]: string;
|
|
2377
|
+
}, C>;
|
|
2378
|
+
columns: Array<{
|
|
2379
|
+
field: Extract<keyof C, string>;
|
|
2380
|
+
title: string;
|
|
2381
|
+
search?: boolean;
|
|
2382
|
+
export?: boolean;
|
|
2383
|
+
}>;
|
|
2384
|
+
};
|
|
2385
|
+
};
|
|
2386
|
+
export type DataTableFilterGroup = {
|
|
2387
|
+
key: string;
|
|
2388
|
+
andFilters?: Filter[];
|
|
2389
|
+
orFilters?: Filter[];
|
|
2390
|
+
};
|
|
2391
|
+
export type SspSorter = {
|
|
2392
|
+
field: string;
|
|
2393
|
+
dir: 'asc' | 'desc';
|
|
2394
|
+
};
|
|
2395
|
+
export type SspAndFilter = {
|
|
2396
|
+
field: string;
|
|
2397
|
+
type: string;
|
|
2398
|
+
value: number | string | boolean;
|
|
2399
|
+
};
|
|
2400
|
+
export type SspOrFilter = SspAndFilter[];
|
|
2401
|
+
export type RemoteDataLoaderParams = {
|
|
2402
|
+
sorting?: SspSorter[];
|
|
2403
|
+
andFilters?: SspAndFilter[];
|
|
2404
|
+
orFilters?: SspOrFilter[];
|
|
2405
|
+
staticFilter?: string;
|
|
2406
|
+
lang?: string;
|
|
2407
|
+
};
|
|
2408
|
+
export type SspInput = RemoteDataLoaderParams & {
|
|
2409
|
+
page: number;
|
|
2410
|
+
size: number;
|
|
2411
|
+
};
|
|
2412
|
+
export type RemoteDataOutput<T> = {
|
|
2413
|
+
total?: number;
|
|
2414
|
+
data: T[];
|
|
2415
|
+
};
|
|
2416
|
+
export type DataTableRemoteLoader<T> = {
|
|
2417
|
+
paginationMode: 'scroll' | 'page';
|
|
2418
|
+
loaderFunc: (inp: SspInput) => AsyncOpResult<RemoteDataOutput<T>>;
|
|
2419
|
+
exportfunc?: (inp: RemoteDataLoaderParams, format: 'xlsx' | 'pdf') => AsyncOpResult<Blob>;
|
|
2420
|
+
};
|
|
2421
|
+
export type DataTableActionProperties<T> = {
|
|
2422
|
+
edit?: {
|
|
2423
|
+
modelTitle: string;
|
|
2424
|
+
add?: () => AsyncOpResult<T>;
|
|
2425
|
+
edit?: (item: T) => AsyncOpResult<T>;
|
|
2426
|
+
delete?: (item: T) => AsyncOpResult<RowLookup>;
|
|
2427
|
+
info?: (item: T) => void;
|
|
2428
|
+
addAuth?: string;
|
|
2429
|
+
editAuth?: string;
|
|
2430
|
+
deleteAuth?: string;
|
|
2431
|
+
infoAuth?: string;
|
|
2432
|
+
restrictContext?: string;
|
|
2433
|
+
};
|
|
2434
|
+
export?: {
|
|
2435
|
+
xls?: true | ((datas: T[]) => Promise<void>);
|
|
2436
|
+
pdf?: true | ((datas: T[]) => Promise<void>);
|
|
2437
|
+
};
|
|
2438
|
+
row?: RowActionInfo<T>[];
|
|
2439
|
+
table?: TableActionInfo<T>[];
|
|
2440
|
+
columnSelectMenu?: boolean;
|
|
2441
|
+
};
|
|
2442
|
+
export type DataTableOptions<T, TDet = any> = {
|
|
2443
|
+
uniqueKey?: string;
|
|
2444
|
+
title?: string;
|
|
2445
|
+
displayTitle?: boolean;
|
|
2446
|
+
columns: {
|
|
2447
|
+
idField: ModelKeys<T>;
|
|
2448
|
+
modelColumns: ModelColumnsInfo<T>;
|
|
2449
|
+
startColumns?: ModelColumn[];
|
|
2450
|
+
endColumns?: ColumnDefinition[];
|
|
2451
|
+
};
|
|
2452
|
+
detail?: DetailInfo<TDet>;
|
|
2453
|
+
dataLoader?: T[] | AsyncOperation<T[], void> | DataTableRemoteLoader<T>;
|
|
2454
|
+
selectableRowCount?: number;
|
|
2455
|
+
pagination?: {
|
|
2456
|
+
size: number;
|
|
2457
|
+
selector?: number[];
|
|
2458
|
+
};
|
|
2459
|
+
searchCols?: ModelKeys<T>[];
|
|
2460
|
+
headerComponent?: HTMLElement;
|
|
2461
|
+
footerComponent?: HTMLElement;
|
|
2462
|
+
enableColMove?: boolean;
|
|
2463
|
+
onRowFormatting?: (row: RowComponent) => void;
|
|
2464
|
+
initialFilters?: Filter[];
|
|
2465
|
+
actions?: DataTableActionProperties<T>;
|
|
2466
|
+
otherOptions?: Partial<Options>;
|
|
2467
|
+
filterClearApproval?: boolean;
|
|
2468
|
+
segments?: {
|
|
2469
|
+
items: DataTableSegment[];
|
|
2470
|
+
initial?: string;
|
|
2471
|
+
};
|
|
2472
|
+
columnFilterPlacement?: 'header' | 'panel';
|
|
2473
|
+
checkboxColumn?: boolean;
|
|
2474
|
+
layout?: "fitData" | "fitColumns" | "fitDataFill" | "fitDataStretch" | "fitDataTable";
|
|
2475
|
+
};
|
|
2476
|
+
export class DataTable<T = any> extends BasePanelElement {
|
|
2477
|
+
options: DataTableOptions<T>;
|
|
2478
|
+
segmentChanged: Eventer<string, void>;
|
|
2479
|
+
rowSelected: Eventer<T[], void>;
|
|
2480
|
+
onBuild: Eventer<void, void>;
|
|
2481
|
+
readonly OnBuildAwaiter: Awaiter;
|
|
2482
|
+
get table(): TabulatorFull;
|
|
2483
|
+
get customFilterDefs(): ColumnCustomFilter[];
|
|
2484
|
+
constructor(options: DataTableOptions<T>);
|
|
2485
|
+
protected onConnected(isFirst?: boolean): void;
|
|
2486
|
+
onPanelResize(start: boolean): void;
|
|
2487
|
+
applyFilterGroup(filterGroup: DataTableFilterGroup, skipRefresh?: boolean): void;
|
|
2488
|
+
removeFilterGroup(key: string | string[]): void;
|
|
2489
|
+
setStaticFilter(staticfilter: string, silent?: boolean): void;
|
|
2490
|
+
refreshRemoteData(): void;
|
|
2491
|
+
setTableActionVisible(key: string, value: boolean): void;
|
|
2492
|
+
getTableActionButton(key: string): HTMLButtonElement;
|
|
2493
|
+
clearData(): Promise<void>;
|
|
2494
|
+
get segment(): string | null;
|
|
2495
|
+
setSegment(key: string): void;
|
|
2496
|
+
getRemoteLoaderParams(): RemoteDataLoaderParams;
|
|
2497
|
+
}
|
|
2498
|
+
type CustomFilterFunction = (data: any, props: any) => boolean;
|
|
2499
|
+
declare class ColumnCustomFilter {
|
|
2500
|
+
constructor(options: OptionalColumnDefinition, field: string, table: DataTable);
|
|
2501
|
+
_apply(): void;
|
|
2502
|
+
_clear(): void;
|
|
2503
|
+
setParentElement(parentElement: HTMLElement): void;
|
|
2504
|
+
setIconElement(iconElement: HTMLElement): void;
|
|
2505
|
+
hasFilter(): boolean;
|
|
2506
|
+
getFilterComponent(): HTMLElement;
|
|
2507
|
+
showFilterDropdown(): void;
|
|
2508
|
+
clearFilterGroup(): string;
|
|
2509
|
+
getHeaderLabel(): HTMLElement;
|
|
2510
|
+
selectedHeaderLabel(): void;
|
|
2511
|
+
unSelectedHeaderLabel(): void;
|
|
2512
|
+
}
|
|
2513
|
+
export type OptionalColumnDefinition = Omit<ModelColumn, 'field' | 'title' | 'formatter'> & {
|
|
2514
|
+
CustomFilter?: CustomFilter;
|
|
2515
|
+
CustomFilterParams?: CustomFilterParams;
|
|
2516
|
+
};
|
|
2517
|
+
export type CustomFilter = "text" | "number" | "range" | "list" | "date" | "datetime-local" | "boolean";
|
|
2518
|
+
export type CustomFilterParams = CustomNumberFilterParams | CustomRangeFilterParams | CustomListFilterParams | CustomDateFilterParams | CustomBooeanFilterParams;
|
|
2519
|
+
export interface CustomNumberFilterParams {
|
|
2520
|
+
min?: number;
|
|
2521
|
+
max?: number;
|
|
2522
|
+
step?: number;
|
|
2523
|
+
conversion?: ConversionProperties;
|
|
2524
|
+
}
|
|
2525
|
+
export interface CustomRangeFilterParams {
|
|
2526
|
+
minProps?: CustomNumberFilterParams;
|
|
2527
|
+
maxProps?: CustomNumberFilterParams;
|
|
2528
|
+
}
|
|
2529
|
+
export interface CustomListFilterParams {
|
|
2530
|
+
values?: LookupSource<LookupValue[]>;
|
|
2531
|
+
filterField?: string;
|
|
2532
|
+
customFunc?: CustomFilterFunction;
|
|
2533
|
+
cascadeParent?: {
|
|
2534
|
+
fields: Array<string | IValueComponent<LookupValue | LookupValue[]>>;
|
|
2535
|
+
itemLoader?: LookupLoader<LookupValue[]>;
|
|
2536
|
+
};
|
|
2537
|
+
}
|
|
2538
|
+
export interface CustomDateFilterParams {
|
|
2539
|
+
shortcuts?: DateRangeShortcut[] | boolean;
|
|
2540
|
+
startLabel?: string;
|
|
2541
|
+
endLabel?: string;
|
|
2542
|
+
}
|
|
2543
|
+
export interface CustomBooeanFilterParams {
|
|
2544
|
+
trueStr?: string;
|
|
2545
|
+
falseStr?: string;
|
|
2546
|
+
}
|
|
2547
|
+
export class DataTableColCreator<T> {
|
|
2548
|
+
createHiddenCol(): ModelColumn;
|
|
2549
|
+
createCol(field: ModelKeys<T>, title: string, formatter: Formatter, otherProps?: OptionalColumnDefinition): ColumnDefinition;
|
|
2550
|
+
createColMutated(field: ModelKeys<T>, title: string, formatter: Formatter, otherProps?: OptionalColumnDefinition): ColumnDefinition;
|
|
2551
|
+
createBasicCol(field: ModelKeys<T>, title: string, otherProps?: OptionalColumnDefinition): ColumnDefinition;
|
|
2552
|
+
createDateTimeIsoStrCol(field: ModelKeys<T>, title: string, otherProps?: OptionalColumnDefinition, displayDateOnly?: boolean): ColumnDefinition;
|
|
2553
|
+
createBooleanStrCol(field: ModelKeys<T>, title: string, trueStr?: string, falseStr?: string, otherProps?: OptionalColumnDefinition): ColumnDefinition;
|
|
2554
|
+
createBooleanCol(field: ModelKeys<T>, title: string, otherProps?: OptionalColumnDefinition): ColumnDefinition;
|
|
2555
|
+
createCsvLookupsCol(field: ModelKeys<T>, title: string, otherProps?: OptionalColumnDefinition): ColumnDefinition;
|
|
2556
|
+
createLookupCol(field: ModelKeys<T>, title: string, lookups: ILookup[], otherProps?: OptionalColumnDefinition): ColumnDefinition;
|
|
2557
|
+
createObjectCol<Tobj>(field: ModelKeys<T>, title: string, objField: PropertyName<Tobj>, otherProps?: OptionalColumnDefinition): ColumnDefinition;
|
|
2558
|
+
}
|
|
2559
|
+
export class DataTableRemoteColumnCreator<T> {
|
|
2560
|
+
createHiddenCol(): ModelColumn;
|
|
2561
|
+
createNumberCol(title: string, otherProps?: OptionalColumnDefinition, filterType?: 'number' | 'range' | 'list' | null, filterParams?: CustomNumberFilterParams | CustomRangeFilterParams | CustomListFilterParams): ModelColumn;
|
|
2562
|
+
createStringCol(title: string, otherProps?: OptionalColumnDefinition, filterType?: 'text' | 'list' | null, filterParams?: CustomListFilterParams): ModelColumn;
|
|
2563
|
+
createDatetimeCol(title: string, otherProps?: OptionalColumnDefinition, hasFilter?: boolean, filterParams?: CustomDateFilterParams): ModelColumn;
|
|
2564
|
+
createDateCol(title: string, otherProps?: OptionalColumnDefinition, hasFilter?: boolean, filterParams?: CustomDateFilterParams): ModelColumn;
|
|
2565
|
+
createBooleanCol(title: string, trueStr?: string, falseStr?: string, otherProps?: OptionalColumnDefinition, hasFilter?: boolean): ModelColumn;
|
|
2566
|
+
}
|
|
2567
|
+
export class CustomFilterHeader extends BaseElement {
|
|
2568
|
+
constructor(_columnDef: ColumnDefinition, _columnFilterObj: ColumnCustomFilter);
|
|
2569
|
+
protected onConnected(isFirst?: boolean): void;
|
|
2570
|
+
}
|
|
2571
|
+
export type SummaryCardProperties = {
|
|
2572
|
+
label: string;
|
|
2573
|
+
value: number | string;
|
|
2574
|
+
unit?: string;
|
|
2575
|
+
description?: string;
|
|
2576
|
+
iconClass?: string;
|
|
2577
|
+
tone?: DtTone;
|
|
2578
|
+
active?: boolean;
|
|
2579
|
+
onClick?: () => void;
|
|
2580
|
+
};
|
|
2581
|
+
export class SummaryCard extends BaseElement {
|
|
2582
|
+
constructor(_props: SummaryCardProperties);
|
|
2583
|
+
update(props: Partial<SummaryCardProperties>): void;
|
|
2584
|
+
}
|
|
2585
|
+
export type ProgramCardAction = {
|
|
2586
|
+
iconClass: string;
|
|
2587
|
+
tooltip: string;
|
|
2588
|
+
onClick: () => void;
|
|
2589
|
+
};
|
|
2590
|
+
export type ProgramCardProperties = {
|
|
2591
|
+
title: string;
|
|
2592
|
+
due?: string;
|
|
2593
|
+
rule?: string;
|
|
2594
|
+
extra?: HTMLElement;
|
|
2595
|
+
progress?: {
|
|
2596
|
+
done: number;
|
|
2597
|
+
total: number;
|
|
2598
|
+
label?: string;
|
|
2599
|
+
};
|
|
2600
|
+
active?: boolean;
|
|
2601
|
+
onClick?: () => void;
|
|
2602
|
+
actions?: ProgramCardAction[];
|
|
2603
|
+
};
|
|
2604
|
+
export class ProgramCard extends BaseElement {
|
|
2605
|
+
constructor(_props: ProgramCardProperties);
|
|
2606
|
+
update(props: Partial<ProgramCardProperties>): void;
|
|
2607
|
+
}
|
|
2608
|
+
export type MasterDetailLayoutProperties = {
|
|
2609
|
+
master: HTMLElement;
|
|
2610
|
+
detail: HTMLElement;
|
|
2611
|
+
aside?: HTMLElement;
|
|
2612
|
+
masterWidth?: number;
|
|
2613
|
+
asideWidth?: string;
|
|
2614
|
+
};
|
|
2615
|
+
export class MasterDetailLayout extends BaseElement {
|
|
2616
|
+
constructor(props: MasterDetailLayoutProperties);
|
|
2617
|
+
get asideVisible(): boolean;
|
|
2618
|
+
set asideVisible(v: boolean);
|
|
2619
|
+
}
|
|
2620
|
+
export type ListPanelSegment = {
|
|
2621
|
+
key: LookupValue;
|
|
2622
|
+
title: string;
|
|
2623
|
+
count?: number;
|
|
2624
|
+
};
|
|
2625
|
+
export type ListPanelItem = {
|
|
2626
|
+
key: LookupValue;
|
|
2627
|
+
title: string;
|
|
2628
|
+
meta?: string;
|
|
2629
|
+
count?: number | string;
|
|
2630
|
+
badge?: {
|
|
2631
|
+
text: string;
|
|
2632
|
+
tone?: DtTone;
|
|
2633
|
+
};
|
|
2634
|
+
};
|
|
2635
|
+
export type ListPanelProperties = {
|
|
2636
|
+
searchPlaceholder?: string;
|
|
2637
|
+
emptyText?: string;
|
|
2638
|
+
onSelect: (key: LookupValue) => void;
|
|
2639
|
+
onSegment?: (key: LookupValue) => void;
|
|
2640
|
+
onSearch?: (text: string) => void;
|
|
2641
|
+
};
|
|
2642
|
+
export class ListPanel extends BaseElement {
|
|
2643
|
+
constructor(_props: ListPanelProperties);
|
|
2644
|
+
get searchText(): string;
|
|
2645
|
+
setSegments(segments: ListPanelSegment[], active: LookupValue): void;
|
|
2646
|
+
setItems(items: ListPanelItem[], selected: LookupValue | null): void;
|
|
2647
|
+
}
|
|
2648
|
+
export type DrawerPosition = 'left' | 'right' | 'bottom';
|
|
2649
|
+
export type DrawerInfo = {
|
|
2650
|
+
content: HTMLElement;
|
|
2651
|
+
title: string;
|
|
2652
|
+
title_icon?: string;
|
|
2653
|
+
pinnable?: boolean;
|
|
2654
|
+
openMode?: 'click' | 'hover';
|
|
2655
|
+
isflat?: boolean;
|
|
2656
|
+
};
|
|
2657
|
+
export type DrawerContainerProperties = {
|
|
2658
|
+
left?: DrawerInfo;
|
|
2659
|
+
main: HTMLElement;
|
|
2660
|
+
right?: DrawerInfo;
|
|
2661
|
+
bottom?: DrawerInfo;
|
|
2662
|
+
};
|
|
2663
|
+
export class DrawerContainer extends BaseElement {
|
|
2664
|
+
constructor(props: DrawerContainerProperties);
|
|
2665
|
+
changeVisiblity(pos: DrawerPosition, show: boolean): void;
|
|
2666
|
+
changePinned(pos: DrawerPosition, pinned: boolean): void;
|
|
2667
|
+
setContent(pos: DrawerPosition, content: HTMLElement): void;
|
|
2668
|
+
getContent(pos: DrawerPosition): HTMLElement;
|
|
2669
|
+
}
|
|
2670
|
+
export class TreeView extends BaseFormInputComponent<LookupValue[]> {
|
|
2671
|
+
ItemActionClicked: Eventer<{
|
|
2672
|
+
item: ITreeItem;
|
|
2673
|
+
actionId: string;
|
|
2674
|
+
}, void>;
|
|
2675
|
+
ItemCheckChanged: Eventer<{
|
|
2676
|
+
item: ITreeItem;
|
|
2677
|
+
checked: boolean;
|
|
2678
|
+
}, void>;
|
|
2679
|
+
props: Required<TreeViewProperties>;
|
|
2680
|
+
constructor(source: IndexedList<ITreeItem> | AsyncOpResult<ITreeItem[]>, properties?: TreeViewProperties);
|
|
2681
|
+
get value(): LookupValue[];
|
|
2682
|
+
set value(value: LookupValue[]);
|
|
2683
|
+
onChildAction(item: ITreeItem, actionId: string): void;
|
|
2684
|
+
onChildCheckChanged(item: ITreeItem, checked: boolean): void;
|
|
2685
|
+
getCheckedItems(): ITreeItem[];
|
|
2686
|
+
setCheckItems(ids: LookupValue[]): void;
|
|
2687
|
+
}
|
|
2688
|
+
export type DropdownTreeProperties = {
|
|
2689
|
+
source: IndexedList<ITreeItem> | AsyncOpResult<ITreeItem[]>;
|
|
2690
|
+
selectionProps: {
|
|
2691
|
+
mode: 'single' | 'multi';
|
|
2692
|
+
lockChildren?: boolean;
|
|
2693
|
+
level?: number;
|
|
2694
|
+
startupExpandLevel?: number;
|
|
2695
|
+
};
|
|
2696
|
+
};
|
|
2697
|
+
export class DropdownTree extends BaseFormInputComponent<LookupValue[]> {
|
|
2698
|
+
get treeView(): TreeView;
|
|
2699
|
+
onSelectChanged: Eventer<ITreeItem[], void>;
|
|
2700
|
+
constructor(props: DropdownTreeProperties);
|
|
2701
|
+
get value(): LookupValue[];
|
|
2702
|
+
set value(value: LookupValue[]);
|
|
2703
|
+
get readOnly(): boolean;
|
|
2704
|
+
set readOnly(readonly: boolean);
|
|
2705
|
+
getCheckedItems(): ITreeItem[];
|
|
2706
|
+
refreshScreen(): void;
|
|
2707
|
+
}
|
|
2708
|
+
export class Empty extends BaseElement {
|
|
2709
|
+
constructor();
|
|
2710
|
+
}
|
|
2711
|
+
export type FlexProperies = {
|
|
2712
|
+
direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
|
|
2713
|
+
gap?: string;
|
|
2714
|
+
wrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
|
|
2715
|
+
itemPosH?: 'flex-start' | 'flex-end' | 'center' | 'stretch';
|
|
2716
|
+
itemPosV?: 'flex-start' | 'flex-end' | 'center' | 'stretch';
|
|
2717
|
+
contentPosH?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'space-around' | 'space-between' | 'space-evenly';
|
|
2718
|
+
contentPosV?: 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'space-around' | 'space-between' | 'space-evenly';
|
|
2719
|
+
};
|
|
2720
|
+
export class Flex extends HTMLDivElement {
|
|
2721
|
+
constructor(prop: FlexProperies, ...children: HTMLElement[]);
|
|
2722
|
+
set visible(v: boolean);
|
|
2723
|
+
static GetCenteredHV(): Flex;
|
|
2724
|
+
static GetCenteredH(): Flex;
|
|
2725
|
+
static GetCenteredV(): Flex;
|
|
2726
|
+
}
|
|
2727
|
+
export class TagInputChangedEvent extends Event {
|
|
2728
|
+
value: string[] | number[];
|
|
2729
|
+
constructor(value: string[] | number[]);
|
|
2730
|
+
}
|
|
2731
|
+
type TagInputEventMap = HTMLElementEventMap & {
|
|
2732
|
+
change: TagInputChangedEvent;
|
|
2733
|
+
};
|
|
2734
|
+
export class TagInput extends BaseFormInputComponent<string[] | number[], TagInputEventMap> {
|
|
2735
|
+
constructor(type?: 'number' | 'text');
|
|
2736
|
+
protected onReadonlychanged(): void;
|
|
2737
|
+
get value(): string[] | number[];
|
|
2738
|
+
set value(values: string[] | number[]);
|
|
2739
|
+
addValue(val: string | number, silent?: boolean): void;
|
|
2740
|
+
triggerChanged(): void;
|
|
2741
|
+
}
|
|
2742
|
+
export class Form<T = {}> extends BaseAsyncFormElement implements IForm<T> {
|
|
2743
|
+
props: FormProperties;
|
|
2744
|
+
isReadonly: boolean;
|
|
2745
|
+
onInputValueChanged: Eventer<{
|
|
2746
|
+
key: string;
|
|
2747
|
+
value: any;
|
|
2748
|
+
}, void>;
|
|
2749
|
+
constructor(props: FormProperties);
|
|
2750
|
+
setData(model: T, forceMatch?: boolean): void;
|
|
2751
|
+
check(silent?: boolean): boolean;
|
|
2752
|
+
getErrors(): string[] | null;
|
|
2753
|
+
checkAsync(): Promise<boolean>;
|
|
2754
|
+
clearErrors(): void;
|
|
2755
|
+
getData(): T;
|
|
2756
|
+
updateValue(key: string, value: any): boolean;
|
|
2757
|
+
getInputElement(key: string): HTMLElement;
|
|
2758
|
+
getInputAction(key: string, actionKey: string): HTMLButtonElement;
|
|
2759
|
+
getLine(key: string): IFormLine;
|
|
2760
|
+
setLinesDisabled(disabled: boolean, ...keys: string[]): void;
|
|
2761
|
+
disableRulesForLines(disabled: boolean, ...keys: string[]): void;
|
|
2762
|
+
refreshInputGroup(inpGrp: IFormInputGroup): void;
|
|
2763
|
+
}
|
|
2764
|
+
export type FormPanelSection = {
|
|
2765
|
+
title: string;
|
|
2766
|
+
content: HTMLElement | HTMLElement[];
|
|
2767
|
+
};
|
|
2768
|
+
export type FormPanelProperties = {
|
|
2769
|
+
title: string;
|
|
2770
|
+
sections: FormPanelSection[];
|
|
2771
|
+
submitText: string;
|
|
2772
|
+
cancelText?: string;
|
|
2773
|
+
onSubmit: () => Promise<boolean> | boolean;
|
|
2774
|
+
onCancel: () => void;
|
|
2775
|
+
onClose?: () => void;
|
|
2776
|
+
collapsible?: boolean;
|
|
2777
|
+
width?: {
|
|
2778
|
+
initial: number;
|
|
2779
|
+
min: number;
|
|
2780
|
+
max: number;
|
|
2781
|
+
};
|
|
2782
|
+
};
|
|
2783
|
+
export class FormPanel extends BaseElement {
|
|
2784
|
+
props: FormPanelProperties;
|
|
2785
|
+
constructor(props: FormPanelProperties);
|
|
2786
|
+
get collapsed(): boolean;
|
|
2787
|
+
set collapsed(v: boolean);
|
|
2788
|
+
updateErrorSummary(): number;
|
|
2789
|
+
protected onConnected(): void;
|
|
2790
|
+
protected onDisconnected(): void;
|
|
2791
|
+
}
|
|
2792
|
+
export type GridProperies = {
|
|
2793
|
+
cols?: string;
|
|
2794
|
+
rows?: string;
|
|
2795
|
+
gap?: string;
|
|
2796
|
+
itemPosH?: 'start' | 'end' | 'center' | 'stretch';
|
|
2797
|
+
itemPosV?: 'start' | 'end' | 'center' | 'stretch';
|
|
2798
|
+
contentPosH?: 'start' | 'end' | 'center' | 'stretch' | 'space-around' | 'space-between' | 'space-evenly';
|
|
2799
|
+
contentPosV?: 'start' | 'end' | 'center' | 'stretch' | 'space-around' | 'space-between' | 'space-evenly';
|
|
2800
|
+
};
|
|
2801
|
+
export class Grid extends BaseElement {
|
|
2802
|
+
constructor(prop: GridProperies, ...children: HTMLElement[]);
|
|
2803
|
+
set visible(v: boolean);
|
|
2804
|
+
}
|
|
2805
|
+
export type RadialMenuOptions = {
|
|
2806
|
+
items: IKeyedButtonInfo[] | AsyncAction<IKeyedButtonInfo[]>;
|
|
2807
|
+
autoOpen: boolean;
|
|
2808
|
+
size?: number;
|
|
2809
|
+
};
|
|
2810
|
+
export class RadialMenu extends BaseElement {
|
|
2811
|
+
ItemClicked: Eventer<IKeyedButtonInfo>;
|
|
2812
|
+
constructor(props: RadialMenuOptions);
|
|
2813
|
+
showAt(x: number, y: number): Promise<boolean>;
|
|
2814
|
+
hide(): void;
|
|
2815
|
+
protected onConnected(): void;
|
|
2816
|
+
_onMouseUp: () => void;
|
|
2817
|
+
_onMouseMove: (e: MouseEvent) => void;
|
|
2818
|
+
}
|
|
2819
|
+
export class RibbonMenu extends BaseElement implements ICommandDisplayer {
|
|
2820
|
+
constructor();
|
|
2821
|
+
addRibbonTab(tab: IRibbonTab): void;
|
|
2822
|
+
removeRibbonTab(name: string): void;
|
|
2823
|
+
findElement(key: string): HTMLElement;
|
|
2824
|
+
activateFirstTab(): void;
|
|
2825
|
+
setActive(key: string, value: boolean): void;
|
|
2826
|
+
setDisabled(key: string, value: boolean): void;
|
|
2827
|
+
}
|
|
2828
|
+
export type MainRibbonMenuProperties = {
|
|
2829
|
+
target: any;
|
|
2830
|
+
};
|
|
2831
|
+
export type FormInputOtherProps = Omit<IFormInput, 'input' | 'key' | 'title' | 'getter' | 'setter'>;
|
|
2832
|
+
export class FormUtils {
|
|
2833
|
+
static createOptionEmpty(title?: string, value?: string): CustomOption;
|
|
2834
|
+
static createOptionFromLookup(lookup: ILookup): CustomOption;
|
|
2835
|
+
static generateFormInputForSelect(field: string, title: string, list: ILookup[], otherProps?: FormInputOtherProps): IFormInput;
|
|
2836
|
+
static generateFormInputForSelectSecondary(field: string, title: string, primary: IFormInput, loaderFunc: (parentVal: LookupValue) => Promise<ILookup[]>, otherProps?: FormInputOtherProps): IFormInput;
|
|
2837
|
+
static generateFormInputForCheckList(field: string, title: string, cp: CheckListProperties, otherProps?: FormInputOtherProps): IFormInput;
|
|
2838
|
+
static generateFormInputForRadio(field: string, title: string, source: LookupSource, otherProps?: FormInputOtherProps): IFormInput;
|
|
2839
|
+
static generateFormInputForSelectFunc(field: string, title: string, lookupFnc: LookupLoader, context: any, otherProps?: FormInputOtherProps): IFormInput;
|
|
2840
|
+
static generateFormInputForCombobox(field: string, title: string, source: LookupSource<LookupValue[]>, otherProps?: FormInputOtherProps): IFormInput;
|
|
2841
|
+
static generateFormInputForComboboxSecondary(field: string, title: string, cascadeProps: CascadeProps, otherProps?: FormInputOtherProps): IFormInput;
|
|
2842
|
+
static generateDateTimeIso(field: string, title: string, otherProps?: FormInputOtherProps): IFormInput;
|
|
2843
|
+
}
|
|
2844
|
+
export class RequiredRule implements IValidationRule {
|
|
2845
|
+
isRequired?: boolean;
|
|
2846
|
+
getError(value: any): string;
|
|
2847
|
+
restrictElement(inp: HTMLElement): void;
|
|
2848
|
+
}
|
|
2849
|
+
export class MinLengthRule implements IValidationRule {
|
|
2850
|
+
len: number;
|
|
2851
|
+
isRequired: boolean;
|
|
2852
|
+
constructor(len: number);
|
|
2853
|
+
getError(value: string): string;
|
|
2854
|
+
restrictElement(inp: HTMLElement): void;
|
|
2855
|
+
}
|
|
2856
|
+
export class MaxLengthRule implements IValidationRule {
|
|
2857
|
+
len: number;
|
|
2858
|
+
constructor(len: number);
|
|
2859
|
+
getError(value: string): string;
|
|
2860
|
+
restrictElement(inp: HTMLElement): void;
|
|
2861
|
+
}
|
|
2862
|
+
export class RegexpRule implements IValidationRule {
|
|
2863
|
+
pattern: string;
|
|
2864
|
+
constructor(pattern: string);
|
|
2865
|
+
getError(value: string): string;
|
|
2866
|
+
}
|
|
2867
|
+
export class MinValueRule implements IValidationRule {
|
|
2868
|
+
min: number;
|
|
2869
|
+
constructor(min: number);
|
|
2870
|
+
getError(value: number): string;
|
|
2871
|
+
restrictElement(inp: HTMLElement): void;
|
|
2872
|
+
}
|
|
2873
|
+
export class MaxValueRule implements IValidationRule {
|
|
2874
|
+
max: number;
|
|
2875
|
+
constructor(max: number);
|
|
2876
|
+
getError(value: number): string;
|
|
2877
|
+
restrictElement(inp: HTMLElement): void;
|
|
2878
|
+
}
|
|
2879
|
+
export class MinDateRule implements IValidationRule {
|
|
2880
|
+
min: string;
|
|
2881
|
+
constructor(min: string);
|
|
2882
|
+
getError(value: string): string;
|
|
2883
|
+
restrictElement(inp: HTMLElement): void;
|
|
2884
|
+
}
|
|
2885
|
+
export class MaxDateRule implements IValidationRule {
|
|
2886
|
+
max: string;
|
|
2887
|
+
constructor(max: string);
|
|
2888
|
+
getError(value: string): string;
|
|
2889
|
+
restrictElement(inp: HTMLElement): void;
|
|
2890
|
+
}
|
|
2891
|
+
export class EpochToDateConverter implements IValueConverter<number, Date> {
|
|
2892
|
+
constructor(inSec?: boolean);
|
|
2893
|
+
convertTo(source: number): Date;
|
|
2894
|
+
convertFrom(target: Date): number;
|
|
2895
|
+
}
|
|
2896
|
+
export class IsoStrToDateConverter implements IValueConverter<string, Date> {
|
|
2897
|
+
convertTo(source: string): Date;
|
|
2898
|
+
convertFrom(target: Date): string;
|
|
2899
|
+
}
|
|
2900
|
+
export class ValueConverters {
|
|
2901
|
+
static get epochToDateConverter(): EpochToDateConverter;
|
|
2902
|
+
static get isoStrToDateConverter(): IsoStrToDateConverter;
|
|
2903
|
+
}
|
|
2904
|
+
export function LookupsToTreeItems(lookups: ILookup[]): ITreeItem[];
|
|
2905
|
+
export function getDateUnitConverterProperties(dataUnit?: LookupValue, selected?: LookupValue): ConversionProperties;
|
|
2906
|
+
export class ThemeService {
|
|
2907
|
+
storeService: StoreService;
|
|
2908
|
+
eventService: EventService;
|
|
2909
|
+
start(): Promise<void>;
|
|
2910
|
+
getThemes(): ThemeInfo[];
|
|
2911
|
+
changeColors(info: ThemeInfo): void;
|
|
2912
|
+
get isDarkmode(): boolean;
|
|
2913
|
+
setDarkmode(value: boolean): void;
|
|
2914
|
+
isValidTheme(info: ThemeInfo): boolean;
|
|
2915
|
+
}
|
|
2916
|
+
export abstract class AppStartup {
|
|
2917
|
+
storeService: StoreService;
|
|
2918
|
+
eventService: EventService;
|
|
2919
|
+
themeService: ThemeService;
|
|
2920
|
+
depresService: DepResService;
|
|
2921
|
+
run(props: ApplicationProperties): Promise<void>;
|
|
2922
|
+
abstract onReady(): void;
|
|
2923
|
+
getDependentServiceStatus(): AsyncOpResult<DependencyInfo[]>;
|
|
2924
|
+
}
|
|
2925
|
+
export abstract class BaseCommand implements ICommand {
|
|
2926
|
+
protected _enabled: boolean;
|
|
2927
|
+
protected _active: boolean;
|
|
2928
|
+
abstract start(childKey?: string, param?: any): void;
|
|
2929
|
+
get enabled(): boolean;
|
|
2930
|
+
get active(): boolean;
|
|
2931
|
+
set enabled(value: boolean);
|
|
2932
|
+
set active(value: boolean);
|
|
2933
|
+
}
|
|
2934
|
+
export abstract class BaseTool extends BaseCommand implements ITool {
|
|
2935
|
+
abstract cancel(): boolean;
|
|
2936
|
+
}
|
|
2937
|
+
export abstract class BaseDisposableTool extends BaseTool {
|
|
2938
|
+
abstract onCancel(): void;
|
|
2939
|
+
abstract onStart(abortSignal: AbortSignal, childKey?: string, param?: any): void;
|
|
2940
|
+
start(childKey?: string, param?: any): void;
|
|
2941
|
+
cancel(): boolean;
|
|
2942
|
+
}
|
|
2943
|
+
export abstract class BasePanelPage extends BasePage implements IPanelManager {
|
|
2944
|
+
abstract OnShow(): void;
|
|
2945
|
+
abstract OnHide(): void;
|
|
2946
|
+
protected _header: HTMLElement;
|
|
2947
|
+
get mainPanel(): MainPanel;
|
|
2948
|
+
constructor();
|
|
2949
|
+
getComponentOfPanel(name: string): HTMLElement;
|
|
2950
|
+
openPanelAsnc(item: TabItem, pos: PanelPos, activate?: boolean, focused?: boolean): Promise<void>;
|
|
2951
|
+
isPanelOpen(name: string): boolean;
|
|
2952
|
+
closePanelAsync(name: string): Promise<boolean | null>;
|
|
2953
|
+
movePanel(name: string, pos: PanelPos, activate?: boolean): void;
|
|
2954
|
+
activatePanel(name: string): boolean;
|
|
2955
|
+
}
|
|
2956
|
+
export type SimpleLoginInp = {
|
|
2957
|
+
ukey: string;
|
|
2958
|
+
pass: string;
|
|
2959
|
+
};
|
|
2960
|
+
export type SimpleLoginProperties = {
|
|
2961
|
+
loginAction: AsyncOperation<ILoginInfo, SimpleLoginInp>;
|
|
2962
|
+
userPlaceholder: string;
|
|
2963
|
+
passPlaceholder: string;
|
|
2964
|
+
loginButtonText: string;
|
|
2965
|
+
};
|
|
2966
|
+
export class SimpleLoginComponent extends BaseElement implements ILoginComponent {
|
|
2967
|
+
onLogined: Eventer<ILoginInfo, any>;
|
|
2968
|
+
constructor(props: SimpleLoginProperties);
|
|
2969
|
+
}
|
|
2970
|
+
export class FormService {
|
|
2971
|
+
createFormAsync(item: AnObject, factoryKey: string, serviceKey: string, tableKey: string, targetType?: string): AsyncOpResult<HTMLElement>;
|
|
2972
|
+
}
|
|
2973
|
+
export enum BaseMapTypes {
|
|
2974
|
+
GoogleRoad = "GoogleRoad",
|
|
2975
|
+
GoogleSatellite = "GoogleSatellite",
|
|
2976
|
+
EsriGrayLight = "EsriGrayLight",
|
|
2977
|
+
EsriGrayDark = "EsriGrayDark",
|
|
2978
|
+
EsriTopo = "EsriTopo",
|
|
2979
|
+
Osm = "Osm",
|
|
2980
|
+
Solid = "Solid"
|
|
2981
|
+
}
|
|
2982
|
+
export enum GisEvents {
|
|
2983
|
+
BasemapChange = "BasemapChange",
|
|
2984
|
+
MapReady = "MapReady",
|
|
2985
|
+
MapFirstRenderComplete = "MapFirstRenderComplete",
|
|
2986
|
+
MapGotoExtentRequest = "MapGotoExtentRequest",
|
|
2987
|
+
MapFlashGeomRequest = "MapFlashGeomRequest",
|
|
2988
|
+
MapIdentifyRequest = "MapIdentifyRequest",
|
|
2989
|
+
MapSelectionChanged = "MapSelectionChanged",
|
|
2990
|
+
MapHighlightsCleared = "MapHighlightsCleared",
|
|
2991
|
+
MapInteractionContextChanged = "MapInteractionContextChanged",
|
|
2992
|
+
MapSelectionContextChanged = "MapSelectionContextChanged",
|
|
2993
|
+
DisableAnimations = "DisableAnimations",
|
|
2994
|
+
RemoveLayer = "RemoveLayer",
|
|
2995
|
+
MapTimeChanged = "MapTimeChanged",
|
|
2996
|
+
MapIdleRefresh = "MapIdleRefresh"
|
|
2997
|
+
}
|
|
2998
|
+
export enum LayerDefinitionTypes {
|
|
2999
|
+
EsriMapService = "EsriMapService",
|
|
3000
|
+
WMS = "WMS",
|
|
3001
|
+
TileXyz = "TileXyz",
|
|
3002
|
+
Custom = "Custom",
|
|
3003
|
+
Group = "Group"
|
|
3004
|
+
}
|
|
3005
|
+
export enum GisCommandContainers {
|
|
3006
|
+
ribbon = "ribbon",
|
|
3007
|
+
mapCtx = "map-ctx"
|
|
3008
|
+
}
|
|
3009
|
+
export type LayerDefinitionBase = {
|
|
3010
|
+
type: LayerDefinitionTypes;
|
|
3011
|
+
key: string;
|
|
3012
|
+
order: number;
|
|
3013
|
+
title: string;
|
|
3014
|
+
visible: boolean;
|
|
3015
|
+
maxZoom?: number;
|
|
3016
|
+
minZoom?: number;
|
|
3017
|
+
canRemove?: boolean;
|
|
3018
|
+
historyEnabled?: boolean;
|
|
3019
|
+
};
|
|
3020
|
+
export interface LayerDefinitionEsriMapService extends LayerDefinitionBase {
|
|
3021
|
+
type: LayerDefinitionTypes.EsriMapService;
|
|
3022
|
+
props: LayerDefinitionProp_EsriMapService;
|
|
3023
|
+
}
|
|
3024
|
+
export interface LayerDefinitionTileXyz extends LayerDefinitionBase {
|
|
3025
|
+
type: LayerDefinitionTypes.TileXyz;
|
|
3026
|
+
props: LayerDefinitionProp_TileXyz;
|
|
3027
|
+
}
|
|
3028
|
+
export interface LayerDefinitionWms extends LayerDefinitionBase {
|
|
3029
|
+
type: LayerDefinitionTypes.WMS;
|
|
3030
|
+
props: LayerDefinitionProp_Wms;
|
|
3031
|
+
}
|
|
3032
|
+
export interface GroupLayerDefinition extends LayerDefinitionBase {
|
|
3033
|
+
type: LayerDefinitionTypes.Group;
|
|
3034
|
+
children: LayerDefinitionBase[];
|
|
3035
|
+
}
|
|
3036
|
+
export interface LayerDefinitionCustom extends LayerDefinitionBase {
|
|
3037
|
+
type: LayerDefinitionTypes.Custom;
|
|
3038
|
+
props: LayerDefinitionProp_Custom;
|
|
3039
|
+
}
|
|
3040
|
+
export type LayerDefinition = LayerDefinitionEsriMapService | LayerDefinitionTileXyz | LayerDefinitionWms | LayerDefinitionCustom;
|
|
3041
|
+
export type LayerDefinitionProp_EsriMapService = {
|
|
3042
|
+
url: string;
|
|
3043
|
+
tiled: boolean;
|
|
3044
|
+
useProxy: boolean;
|
|
3045
|
+
};
|
|
3046
|
+
export type LayerDefinitionProp_TileXyz = {
|
|
3047
|
+
urlScheme: string;
|
|
3048
|
+
reverseY: boolean;
|
|
3049
|
+
useProxy: boolean;
|
|
3050
|
+
legendTiles?: number[];
|
|
3051
|
+
attributions?: string;
|
|
3052
|
+
};
|
|
3053
|
+
export type LayerDefinitionProp_Wms = {
|
|
3054
|
+
title?: string;
|
|
3055
|
+
url: string;
|
|
3056
|
+
tiled: boolean;
|
|
3057
|
+
useProxy: boolean;
|
|
3058
|
+
wfsEnabled: boolean;
|
|
3059
|
+
layers: string;
|
|
3060
|
+
imagetype: 'image/png8' | 'image/png' | 'image/jpeg';
|
|
3061
|
+
shapefield?: string;
|
|
3062
|
+
cacheSize?: number;
|
|
3063
|
+
};
|
|
3064
|
+
export type LayerDefinitionProp_Custom = {
|
|
3065
|
+
factoryKey: string;
|
|
3066
|
+
customProps?: any;
|
|
3067
|
+
};
|
|
3068
|
+
export type IdentifyType = 'remote' | 'feature' | 'mvt' | 'none';
|
|
3069
|
+
export type IdentifyPriority = 0 | 1 | 2;
|
|
3070
|
+
export interface ILayer extends ITreeItem {
|
|
3071
|
+
id: string;
|
|
3072
|
+
hasMapLayer: boolean;
|
|
3073
|
+
children?: ISimpleArray<ILayer>;
|
|
3074
|
+
identifyType: IdentifyType;
|
|
3075
|
+
}
|
|
3076
|
+
export type MainLayerType = Layer | Group;
|
|
3077
|
+
export type LayerProperties = {
|
|
3078
|
+
mapLayer: IMapLayer;
|
|
3079
|
+
name: string;
|
|
3080
|
+
canSelect: boolean;
|
|
3081
|
+
};
|
|
3082
|
+
export interface IMapLayer<T extends MainLayerType = MainLayerType> extends ILayer {
|
|
3083
|
+
getLegendInfos(): LayerLegendSymbolInfo[];
|
|
3084
|
+
prepareAsync(): Promise<boolean>;
|
|
3085
|
+
onAdd(): void;
|
|
3086
|
+
onRemove(): void;
|
|
3087
|
+
layerObj: T;
|
|
3088
|
+
hasError: boolean;
|
|
3089
|
+
factoryType: string;
|
|
3090
|
+
onViewExtentChanged(loc: LastViewLocation): any;
|
|
3091
|
+
}
|
|
3092
|
+
export interface IdentifyLayer {
|
|
3093
|
+
generatePopupItemsAsync?(feature: FeatureLike): Promise<ILayerPopupItem[]>;
|
|
3094
|
+
getIdentifyPriority(feature: FeatureLike): IdentifyPriority;
|
|
3095
|
+
}
|
|
3096
|
+
export interface IFeatureLayer extends IMapLayer<VectorLayer>, IdentifyLayer {
|
|
3097
|
+
identifyType: 'feature';
|
|
3098
|
+
setFeaturesSelected?(features: FeatureLike[]): void;
|
|
3099
|
+
getFeatureTitle?(f: FeatureLike): string;
|
|
3100
|
+
flashFeatures?(f: FeatureLike): any;
|
|
3101
|
+
}
|
|
3102
|
+
export interface IMvtLayer extends IMapLayer<VectorTileLayer>, IdentifyLayer {
|
|
3103
|
+
identifyType: 'mvt';
|
|
3104
|
+
setFeaturesSelected?(features: FeatureLike[]): void;
|
|
3105
|
+
getFeatureTitle?(f: FeatureLike): string;
|
|
3106
|
+
flashFeatures?(f: FeatureLike): any;
|
|
3107
|
+
}
|
|
3108
|
+
export interface IImageLayer<T extends MainLayerType = MainLayerType> extends IMapLayer<T>, IdentifyLayer {
|
|
3109
|
+
identifyType: 'remote';
|
|
3110
|
+
queryIdentifyAsync?(data: MapIdentifyData): AsyncOpResult<IdentifyResultItem[]>;
|
|
3111
|
+
queryGeometryAsync?(geom: Geometry, max?: number, layernames?: string[]): AsyncOpResult<IdentifyResultItem[]>;
|
|
3112
|
+
}
|
|
3113
|
+
export interface ILayerFactory {
|
|
3114
|
+
type: LayerDefinitionTypes;
|
|
3115
|
+
createAsync(ld: LayerDefinition): AsyncOpResult<IMapLayer>;
|
|
3116
|
+
}
|
|
3117
|
+
export type LayerLegendSymbolRow = {
|
|
3118
|
+
elm: HTMLElement;
|
|
3119
|
+
label?: string;
|
|
3120
|
+
};
|
|
3121
|
+
export type LayerLegendSymbolInfo = {
|
|
3122
|
+
layerId: string;
|
|
3123
|
+
title: string;
|
|
3124
|
+
subtitle?: string;
|
|
3125
|
+
rows: LayerLegendSymbolRow[];
|
|
3126
|
+
};
|
|
3127
|
+
export type LayerIdentifyResultSync = {
|
|
3128
|
+
type: 'sync';
|
|
3129
|
+
sourceLayer: IMapLayer;
|
|
3130
|
+
status: boolean;
|
|
3131
|
+
result: OpResult<IdentifyResultItem[]>;
|
|
3132
|
+
};
|
|
3133
|
+
export type LayerIdentifyResultAsync = {
|
|
3134
|
+
type: 'async';
|
|
3135
|
+
sourceLayer: IMapLayer;
|
|
3136
|
+
status: boolean;
|
|
3137
|
+
result: AsyncOpResult<IdentifyResultItem[]>;
|
|
3138
|
+
};
|
|
3139
|
+
export type LayerIdentifyResult = LayerIdentifyResultSync | LayerIdentifyResultAsync;
|
|
3140
|
+
export type IdentifyResultItem = {
|
|
3141
|
+
layerTitle: string;
|
|
3142
|
+
layerKey: string;
|
|
3143
|
+
feature: Feature<Geometry>;
|
|
3144
|
+
};
|
|
3145
|
+
export interface ILayerPopupItem {
|
|
3146
|
+
title: string;
|
|
3147
|
+
layer: IMapLayer;
|
|
3148
|
+
element: HTMLElement | ((feature: FeatureLike | Feature<Geometry>, coords: Coordinate) => void);
|
|
3149
|
+
}
|
|
3150
|
+
export type PointVectorSource = VectorSource<Feature<Point>>;
|
|
3151
|
+
export type LineVectorSource = VectorSource<Feature<LineString>>;
|
|
3152
|
+
export type PolygonVectorSource = VectorSource<Feature<Polygon>>;
|
|
3153
|
+
export type LineLayer = VectorLayer<LineVectorSource>;
|
|
3154
|
+
export type PointLayer = VectorLayer<PointVectorSource>;
|
|
3155
|
+
export type PolygonLayer = VectorLayer<PolygonVectorSource>;
|
|
3156
|
+
export type SearchResult = {
|
|
3157
|
+
id: string | number;
|
|
3158
|
+
text: string;
|
|
3159
|
+
detail: string;
|
|
3160
|
+
location?: Geometry;
|
|
3161
|
+
};
|
|
3162
|
+
export interface ISearchSource extends ILookup {
|
|
3163
|
+
type: 'local' | 'remote';
|
|
3164
|
+
placeholder: string;
|
|
3165
|
+
validate(text: string): OpResult;
|
|
3166
|
+
actions?: IKeyedButtonInfo[];
|
|
3167
|
+
onAction?: (actionKey: string, item: SearchResult) => void;
|
|
3168
|
+
init?(): void;
|
|
3169
|
+
disabled?: boolean;
|
|
3170
|
+
}
|
|
3171
|
+
export interface ILocalSearchSource extends ISearchSource {
|
|
3172
|
+
type: 'local';
|
|
3173
|
+
run(text: string): OpResult<SearchResult[]>;
|
|
3174
|
+
}
|
|
3175
|
+
export interface IRemoteSearchSource extends ISearchSource {
|
|
3176
|
+
type: 'remote';
|
|
3177
|
+
runAsync(text: string): AsyncOpResult<SearchResult[]>;
|
|
3178
|
+
}
|
|
3179
|
+
export type SearchSource = ILocalSearchSource | IRemoteSearchSource;
|
|
3180
|
+
export type RemoteSearchInput = {
|
|
3181
|
+
type: string;
|
|
3182
|
+
text: string;
|
|
3183
|
+
};
|
|
3184
|
+
export type RemoteSearchResult = {
|
|
3185
|
+
id: string | number;
|
|
3186
|
+
text: string;
|
|
3187
|
+
detail: string;
|
|
3188
|
+
geom?: GeoJSONGeometry;
|
|
3189
|
+
};
|
|
3190
|
+
export type GisExternalApiSettings = {
|
|
3191
|
+
proxyUrl?: string;
|
|
3192
|
+
google?: {
|
|
3193
|
+
apikey: string;
|
|
3194
|
+
useProxy?: boolean;
|
|
3195
|
+
};
|
|
3196
|
+
};
|
|
3197
|
+
export type MapStartupSettings = {
|
|
3198
|
+
baseMap: BaseMapTypes;
|
|
3199
|
+
defaultLocation: LastViewLocation;
|
|
3200
|
+
layerLoader: AsyncOperation<LayerDefinition[]>;
|
|
3201
|
+
customLayerFactory: ILayerFactory;
|
|
3202
|
+
searchSources: SearchSource[];
|
|
3203
|
+
idleRefreshSeconds?: number;
|
|
3204
|
+
bottomPanel?: {
|
|
3205
|
+
buttonTooltip?: string;
|
|
3206
|
+
buttonIconClass?: string;
|
|
3207
|
+
factory?: Action<HTMLElement>;
|
|
3208
|
+
};
|
|
3209
|
+
ExternalApiSettings?: GisExternalApiSettings;
|
|
3210
|
+
};
|
|
3211
|
+
export type BasicGeometryTypes = 'Point' | 'LineString' | 'Polygon';
|
|
3212
|
+
export type GeometryTypes = BasicGeometryTypes | 'LinearRing' | 'MultiPoint' | 'MultiLineString' | 'MultiPolygon' | 'GeometryCollection' | 'Circle';
|
|
3213
|
+
export type MapGotoExtentRequestData = {
|
|
3214
|
+
extent: number[];
|
|
3215
|
+
};
|
|
3216
|
+
export type MapFlashGeomRequestData = {
|
|
3217
|
+
geom: Geometry;
|
|
3218
|
+
skipZoom?: boolean;
|
|
3219
|
+
keepExist?: boolean;
|
|
3220
|
+
keepFlashed?: boolean;
|
|
3221
|
+
hideAfter?: boolean;
|
|
3222
|
+
};
|
|
3223
|
+
export type MapIdentifyData = {
|
|
3224
|
+
coords: number[];
|
|
3225
|
+
screenPoint: number[];
|
|
3226
|
+
tolerance: number;
|
|
3227
|
+
mapExtent: number[];
|
|
3228
|
+
imageDisplay: {
|
|
3229
|
+
w: number;
|
|
3230
|
+
h: number;
|
|
3231
|
+
dpi: number;
|
|
3232
|
+
};
|
|
3233
|
+
resolution: number;
|
|
3234
|
+
};
|
|
3235
|
+
export type LastViewLocation = {
|
|
3236
|
+
center: number[];
|
|
3237
|
+
zoom: number;
|
|
3238
|
+
extent?: number[];
|
|
3239
|
+
};
|
|
3240
|
+
export type LayerSymbologyLabelDef = {
|
|
3241
|
+
field: string;
|
|
3242
|
+
textColor: string;
|
|
3243
|
+
textSize: number;
|
|
3244
|
+
minLevel?: number;
|
|
3245
|
+
overflow?: boolean;
|
|
3246
|
+
offsetX: number;
|
|
3247
|
+
offsetY: number;
|
|
3248
|
+
};
|
|
3249
|
+
export type SimpleLayerSymbology = {
|
|
3250
|
+
type: "simple";
|
|
3251
|
+
geomType: BasicGeometryTypes;
|
|
3252
|
+
size: number;
|
|
3253
|
+
color: string;
|
|
3254
|
+
labelDef?: LayerSymbologyLabelDef;
|
|
3255
|
+
pointProps?: {
|
|
3256
|
+
shape: 'circle' | 'square' | 'triangle' | 'star' | 'pentagon' | 'image';
|
|
3257
|
+
src?: string;
|
|
3258
|
+
anchor?: number[];
|
|
3259
|
+
height?: number;
|
|
3260
|
+
width?: number;
|
|
3261
|
+
offset?: number[];
|
|
3262
|
+
};
|
|
3263
|
+
stroke?: {
|
|
3264
|
+
size: number;
|
|
3265
|
+
color: string;
|
|
3266
|
+
};
|
|
3267
|
+
};
|
|
3268
|
+
export type UniqueValueInfo = {
|
|
3269
|
+
st: number;
|
|
3270
|
+
title: string;
|
|
3271
|
+
symbol: SimpleLayerSymbology;
|
|
3272
|
+
};
|
|
3273
|
+
export type UniqueValuesLayerSymbology = {
|
|
3274
|
+
type: "unique";
|
|
3275
|
+
geomType: BasicGeometryTypes;
|
|
3276
|
+
values: UniqueValueInfo[];
|
|
3277
|
+
};
|
|
3278
|
+
export type LayerSymbology = SimpleLayerSymbology | UniqueValuesLayerSymbology;
|
|
3279
|
+
export type GetOneFeatureOptions = {
|
|
3280
|
+
menux: number;
|
|
3281
|
+
menuy: number;
|
|
3282
|
+
hitTolerance?: number;
|
|
3283
|
+
layerFilter?: (lyr: Layer) => boolean;
|
|
3284
|
+
featureFilter?: (feature: FeatureLike) => boolean;
|
|
3285
|
+
};
|
|
3286
|
+
export type GetMultiFeatureOptions = {
|
|
3287
|
+
layerFilter?: (lyr: Layer) => boolean;
|
|
3288
|
+
featureFilter?: (feature: FeatureLike) => boolean;
|
|
3289
|
+
maxFeatures?: number;
|
|
3290
|
+
layernames?: string[];
|
|
3291
|
+
};
|
|
3292
|
+
export interface IFeatureCmItem {
|
|
3293
|
+
title: string;
|
|
3294
|
+
iconClass?: string;
|
|
3295
|
+
group?: string;
|
|
3296
|
+
}
|
|
3297
|
+
export interface IClickItem extends IFeatureCmItem {
|
|
3298
|
+
feature: FeatureLike | Feature<Geometry>;
|
|
3299
|
+
layer: Layer;
|
|
3300
|
+
mapLayer: IMapLayer;
|
|
3301
|
+
}
|
|
3302
|
+
export type SelectedMapItem = {
|
|
3303
|
+
feature: FeatureLike | Feature<Geometry>;
|
|
3304
|
+
mapLayer: IMapLayer;
|
|
3305
|
+
};
|
|
3306
|
+
export type MapContextMenuStartArgs = {
|
|
3307
|
+
ci?: IClickItem;
|
|
3308
|
+
coord: Coordinate;
|
|
3309
|
+
pixel: Pixel;
|
|
3310
|
+
context?: IMapInteractionContext;
|
|
3311
|
+
};
|
|
3312
|
+
export type FeatureContextMenuItemAction = (action: 'click' | 'enter' | 'leave', item: IFeatureCmItem) => void;
|
|
3313
|
+
export type MapContextMenuCommandProperties = ActionCommandProperties & {
|
|
3314
|
+
canExecuteFor(arg: MapContextMenuStartArgs): boolean;
|
|
3315
|
+
};
|
|
3316
|
+
export interface IMapInteractionContext {
|
|
3317
|
+
activeWork: string;
|
|
3318
|
+
activeWorkProp?: any;
|
|
3319
|
+
completeWork: (res: boolean, data: any) => void;
|
|
3320
|
+
aborter?: AbortSignal;
|
|
3321
|
+
}
|
|
3322
|
+
export interface IMapSelectionContext {
|
|
3323
|
+
mode: 'single' | 'freehand' | 'polygon';
|
|
3324
|
+
contextMenuContainer?: string;
|
|
3325
|
+
makeSelected?: boolean;
|
|
3326
|
+
layerFilter?: (lyr: Layer) => boolean;
|
|
3327
|
+
featureFilter?: (feature: FeatureLike) => boolean;
|
|
3328
|
+
completeWork: (items: SelectedMapItem[], geom: Point | Polygon) => void;
|
|
3329
|
+
aborter?: AbortSignal;
|
|
3330
|
+
maxFeatures?: number;
|
|
3331
|
+
skipFindFeatures?: boolean;
|
|
3332
|
+
maxAreaKm2?: number;
|
|
3333
|
+
continue?: boolean;
|
|
3334
|
+
remotelayernames?: string[];
|
|
3335
|
+
}
|
|
3336
|
+
export interface ILayerManager {
|
|
3337
|
+
basemapLayer: IMapLayer;
|
|
3338
|
+
layerList: IndexedList<IMapLayer>;
|
|
3339
|
+
}
|
|
3340
|
+
export function getGisExternalApiSettings(): GisExternalApiSettings | null;
|
|
3341
|
+
export function setGisExternalApiSettings(val: GisExternalApiSettings): void;
|
|
3342
|
+
export class ProxyFetcher {
|
|
3343
|
+
storeService: StoreService;
|
|
3344
|
+
fetch(url: string, options?: RequestInit): Promise<Response>;
|
|
3345
|
+
fetchImageObjectUrl(url: string): Promise<string | null>;
|
|
3346
|
+
loadImage(img: HTMLImageElement, url: string): Promise<boolean>;
|
|
3347
|
+
readonly tileLoadFunction: (tile: Tile, url: string) => void;
|
|
3348
|
+
}
|
|
3349
|
+
export abstract class MapLayerBase<T extends MainLayerType = MainLayerType, P extends LayerDefinitionBase = LayerDefinitionBase> implements IMapLayer<T> {
|
|
3350
|
+
protected _definition: P;
|
|
3351
|
+
protected _canIdentify: boolean;
|
|
3352
|
+
protected _layer: T | null;
|
|
3353
|
+
protected _actions: TreeItemActionInfo[];
|
|
3354
|
+
protected _lastViewLocation: LastViewLocation;
|
|
3355
|
+
protected _currentTime: number;
|
|
3356
|
+
identifyType: IdentifyType;
|
|
3357
|
+
factoryType: string;
|
|
3358
|
+
hasError: boolean;
|
|
3359
|
+
hidden?: boolean;
|
|
3360
|
+
icon?: HTMLElement;
|
|
3361
|
+
children?: ISimpleArray<ILayer>;
|
|
3362
|
+
propsChanged?: Eventer<{
|
|
3363
|
+
key: string;
|
|
3364
|
+
value: any;
|
|
3365
|
+
}, void>;
|
|
3366
|
+
actionPropChanged?: Eventer<{
|
|
3367
|
+
action: TreeItemActionInfo;
|
|
3368
|
+
key: string;
|
|
3369
|
+
value: any;
|
|
3370
|
+
}, void>;
|
|
3371
|
+
eventService: EventService;
|
|
3372
|
+
get id(): string;
|
|
3373
|
+
get title(): string;
|
|
3374
|
+
get checked(): boolean;
|
|
3375
|
+
get order(): number;
|
|
3376
|
+
get actions(): TreeItemActionInfo[];
|
|
3377
|
+
get layerObj(): T;
|
|
3378
|
+
get definition(): P;
|
|
3379
|
+
get displayClass(): DisplayClasses;
|
|
3380
|
+
get passive(): boolean;
|
|
3381
|
+
get hasMapLayer(): boolean;
|
|
3382
|
+
constructor(_definition: P);
|
|
3383
|
+
onViewExtentChanged(loc: LastViewLocation): void;
|
|
3384
|
+
onAction?(id: string): void;
|
|
3385
|
+
abstract getLegendInfos(): LayerLegendSymbolInfo[];
|
|
3386
|
+
prepareAsync(): Promise<boolean>;
|
|
3387
|
+
onAdd(): void;
|
|
3388
|
+
onRemove(): void;
|
|
3389
|
+
setError(message: string): void;
|
|
3390
|
+
set checked(value: boolean);
|
|
3391
|
+
set order(value: number);
|
|
3392
|
+
set actions(value: TreeItemActionInfo[]);
|
|
3393
|
+
set displayClass(value: DisplayClasses);
|
|
3394
|
+
set passive(value: boolean);
|
|
3395
|
+
get disposeSignal(): AbortSignal;
|
|
3396
|
+
protected onTimeChanged(): void;
|
|
3397
|
+
protected saveLastVisibleState(value: boolean): void;
|
|
3398
|
+
}
|
|
3399
|
+
export class TileXyzLayer extends MapLayerBase<TileLayer<XYZ | ImageTileSource>, LayerDefinitionTileXyz> {
|
|
3400
|
+
identifyType: 'none';
|
|
3401
|
+
constructor(ld: LayerDefinitionTileXyz, _legendInfos: LayerLegendSymbolInfo[], layer: TileLayer<XYZ | ImageTileSource>);
|
|
3402
|
+
getLegendInfos(): LayerLegendSymbolInfo[];
|
|
3403
|
+
}
|
|
3404
|
+
export type IdentifyParams = {
|
|
3405
|
+
layerIds: number[];
|
|
3406
|
+
coords: number[];
|
|
3407
|
+
tolerance: number;
|
|
3408
|
+
mapExtent: number[];
|
|
3409
|
+
imageDisplay: {
|
|
3410
|
+
w: number;
|
|
3411
|
+
h: number;
|
|
3412
|
+
dpi: number;
|
|
3413
|
+
};
|
|
3414
|
+
returnUnformattedValues: boolean;
|
|
3415
|
+
returnFieldName: boolean;
|
|
3416
|
+
};
|
|
3417
|
+
export class AgsMapServiceChannel {
|
|
3418
|
+
storeService: StoreService;
|
|
3419
|
+
constructor(_prop: LayerDefinitionProp_EsriMapService);
|
|
3420
|
+
get ok(): boolean;
|
|
3421
|
+
get serviceInfo(): Esri.ServerTypes.MapServiceInfo;
|
|
3422
|
+
get legendInfo(): Esri.ServerTypes.MapServiceLegendInfo;
|
|
3423
|
+
connectAsync(): AsyncOpResult;
|
|
3424
|
+
getTableInfoAsync(layerId: number): Promise<Esri.ServerTypes.MapServiceLayerTableInfo>;
|
|
3425
|
+
queryRecordCount(layerId: number, filter?: string): AsyncOpResult<number>;
|
|
3426
|
+
queryFeatures(layerId: number, filter?: string, orderBy?: string, page?: {
|
|
3427
|
+
num: number;
|
|
3428
|
+
size: number;
|
|
3429
|
+
}): AsyncOpResult<GeoJSON.FeatureCollection>;
|
|
3430
|
+
identify(params: IdentifyParams): AsyncOpResult<Esri.ServerTypes.IdentifyResult[]>;
|
|
3431
|
+
getImageData(url: string): Promise<string>;
|
|
3432
|
+
getUrl(suffix?: string): string;
|
|
3433
|
+
getUrlClean(suffix?: string): string;
|
|
3434
|
+
}
|
|
3435
|
+
export class OlGeomHelper {
|
|
3436
|
+
static readonly WGS84: Projection;
|
|
3437
|
+
static readonly WebMerc: Projection;
|
|
3438
|
+
static getBasicTypeOfVectorSource<T extends Geometry>(source: VectorSource<Feature<T>>): BasicGeometryTypes | null;
|
|
3439
|
+
static formatCoordWgs(coord: Coordinate): string;
|
|
3440
|
+
static toWGSCoords(coords: Coordinate): Coordinate;
|
|
3441
|
+
static fromWGSCoords(coords: Coordinate): Coordinate;
|
|
3442
|
+
static toWGSExtent(coords: Extent): Coordinate;
|
|
3443
|
+
static toGeojsonStr(geom: Geometry): string;
|
|
3444
|
+
static fromGeojsonStr<T extends Geometry>(geojsonStr: string): T;
|
|
3445
|
+
static projectToWgs84(coords: Coordinate, wkid: number): Coordinate;
|
|
3446
|
+
static projectWgsTo3857(coords: Coordinate): Coordinate;
|
|
3447
|
+
static esriExtentAsWGS84(srcEnv: Esri.GeometryTypes.IEnvelope): number[];
|
|
3448
|
+
static fromEsriJsonToGeojson(ej: Esri.GeometryTypes.IEsriGeometry): GeoJSON.Geometry;
|
|
3449
|
+
static fromGeojson<T extends Geometry = Geometry>(geojson: any): T;
|
|
3450
|
+
static fromGeojsonFeature<T extends Geometry = Geometry>(geojson: any): Feature<T>;
|
|
3451
|
+
static fromGeojsonFeatures<T extends Geometry = Geometry>(geojson: any): Feature<T>[];
|
|
3452
|
+
static fromEsriJson<T extends Geometry = Geometry>(ej: Esri.GeometryTypes.IEsriGeometry): T;
|
|
3453
|
+
}
|
|
3454
|
+
type AgsLayerType = ImageLayer<ImageArcGISRest> | TileLayer<TileArcGISRest>;
|
|
3455
|
+
export type SubLayerCapabilities = {
|
|
3456
|
+
hasAttributeTable: boolean;
|
|
3457
|
+
maxRecords: number;
|
|
3458
|
+
};
|
|
3459
|
+
declare abstract class AgsMapServiceLayer<T extends AgsLayerType = AgsLayerType> extends MapLayerBase<AgsLayerType, LayerDefinitionEsriMapService> {
|
|
3460
|
+
application: Application;
|
|
3461
|
+
eventService: EventService;
|
|
3462
|
+
identifyType: 'remote';
|
|
3463
|
+
children: List<AgsMapServiceSubLayer>;
|
|
3464
|
+
protected _visibleSubLayerIds: number[];
|
|
3465
|
+
protected _allSubLayers: AgsMapServiceSubLayer[];
|
|
3466
|
+
constructor(definition: LayerDefinitionEsriMapService, channel: AgsMapServiceChannel, layer: T);
|
|
3467
|
+
initialize(): void;
|
|
3468
|
+
getLegendInfos(): LayerLegendSymbolInfo[];
|
|
3469
|
+
getServiceInfo(): Esri.ServerTypes.MapServiceInfo;
|
|
3470
|
+
get channel(): AgsMapServiceChannel;
|
|
3471
|
+
onSubLayerVisibleChanged(): void;
|
|
3472
|
+
onAction: (id: string) => void;
|
|
3473
|
+
getIdentifyPriority(feature: FeatureLike): IdentifyPriority;
|
|
3474
|
+
onIdentifyRequested: (prm: MapIdentifyData) => LayerIdentifyResultAsync;
|
|
3475
|
+
private get isAnyVisible();
|
|
3476
|
+
queryIdentifyAsync?(prm: MapIdentifyData): AsyncOpResult<IdentifyResultItem[]>;
|
|
3477
|
+
generatePopupItemsAsync?(feature: FeatureLike): Promise<ILayerPopupItem[]>;
|
|
3478
|
+
}
|
|
3479
|
+
export class AgsMapServiceImageLayer extends AgsMapServiceLayer<ImageLayer<ImageArcGISRest>> {
|
|
3480
|
+
}
|
|
3481
|
+
export class AgsMapServiceTileLayer extends AgsMapServiceLayer<TileLayer<TileArcGISRest>> {
|
|
3482
|
+
}
|
|
3483
|
+
export class AgsMapServiceSubLayer implements ILayer {
|
|
3484
|
+
get hasMapLayer(): boolean;
|
|
3485
|
+
id: string;
|
|
3486
|
+
identifyType: 'none';
|
|
3487
|
+
title: string;
|
|
3488
|
+
hidden?: boolean;
|
|
3489
|
+
passive?: boolean;
|
|
3490
|
+
actions?: TreeItemActionInfo[];
|
|
3491
|
+
children?: List<AgsMapServiceSubLayer>;
|
|
3492
|
+
propsChanged?: Eventer<{
|
|
3493
|
+
key: string;
|
|
3494
|
+
value: any;
|
|
3495
|
+
}, void>;
|
|
3496
|
+
actionPropChanged?: Eventer<{
|
|
3497
|
+
action: TreeItemActionInfo;
|
|
3498
|
+
key: string;
|
|
3499
|
+
value: any;
|
|
3500
|
+
}, void>;
|
|
3501
|
+
order?: number;
|
|
3502
|
+
serviceId: number;
|
|
3503
|
+
hasLegend: boolean;
|
|
3504
|
+
icon?: HTMLElement;
|
|
3505
|
+
getLegendInfos(): LayerLegendSymbolInfo[];
|
|
3506
|
+
constructor(_serviceLayer: AgsMapServiceImageLayer | AgsMapServiceTileLayer, _layerInfo: Esri.ServerTypes.LayerInfo, _capabilities: SubLayerCapabilities);
|
|
3507
|
+
get serviceLayer(): AgsMapServiceImageLayer | AgsMapServiceTileLayer;
|
|
3508
|
+
get capabilities(): SubLayerCapabilities;
|
|
3509
|
+
get checked(): boolean;
|
|
3510
|
+
set checked(value: boolean);
|
|
3511
|
+
onAction(id: string): void;
|
|
3512
|
+
get isAnyVisible(): boolean;
|
|
3513
|
+
}
|
|
3514
|
+
declare abstract class GeoserverChannelBase<T> {
|
|
3515
|
+
protected readonly _wmsProps: LayerDefinitionProp_Wms;
|
|
3516
|
+
protected readonly _proxyUrl: string;
|
|
3517
|
+
protected readonly _shapeField: string;
|
|
3518
|
+
storeService: StoreService;
|
|
3519
|
+
themeService: ThemeService;
|
|
3520
|
+
source: T;
|
|
3521
|
+
customParamsFnc: (action: 'getmap' | 'identify') => {
|
|
3522
|
+
[key: string]: any;
|
|
3523
|
+
};
|
|
3524
|
+
constructor(_wmsProps: LayerDefinitionProp_Wms);
|
|
3525
|
+
abstract RefreshSource(): void;
|
|
3526
|
+
IdentifyAsync(inp: MapIdentifyData): Promise<Feature<Geometry>[]>;
|
|
3527
|
+
QueryIntersectAsync(geom: Geometry, maxFeatures?: number, layernames?: string[]): Promise<Feature<Geometry>[]>;
|
|
3528
|
+
GetLegendAsync(size?: number, scale?: number): Promise<Blob>;
|
|
3529
|
+
protected _getImageData(url: string): Promise<string>;
|
|
3530
|
+
protected _getWithCustomParams(action: 'getmap' | 'identify', url: string): string;
|
|
3531
|
+
}
|
|
3532
|
+
export class GeoserverChannelTiled extends GeoserverChannelBase<TileWmsSource> {
|
|
3533
|
+
constructor(wmsProps: LayerDefinitionProp_Wms);
|
|
3534
|
+
RefreshSource(): void;
|
|
3535
|
+
}
|
|
3536
|
+
export class GeoserverChannelImage extends GeoserverChannelBase<ImageWMS> {
|
|
3537
|
+
constructor(wmsProps: LayerDefinitionProp_Wms);
|
|
3538
|
+
RefreshSource(): void;
|
|
3539
|
+
}
|
|
3540
|
+
export function simplifyOlPolygonToMaxVertices(polygon: Polygon, maxVertices: number): Polygon;
|
|
3541
|
+
type OLayerType = ImageLayer<ImageSource> | TileLayer<TileWmsSource>;
|
|
3542
|
+
export abstract class WmsLayerBase extends MapLayerBase<OLayerType, LayerDefinitionWms> implements IImageLayer {
|
|
3543
|
+
identifyType: 'remote';
|
|
3544
|
+
protected _channel: GeoserverChannelImage | GeoserverChannelTiled;
|
|
3545
|
+
constructor(ld: LayerDefinitionWms);
|
|
3546
|
+
getIdentifyPriority(feature: FeatureLike): IdentifyPriority;
|
|
3547
|
+
getLegendInfos(): LayerLegendSymbolInfo[];
|
|
3548
|
+
abstract queryIdentifyAsync?(data: MapIdentifyData): AsyncOpResult<IdentifyResultItem[]>;
|
|
3549
|
+
abstract queryGeometryAsync?(geom: Geometry, max?: number, layernames?: string[]): AsyncOpResult<IdentifyResultItem[]>;
|
|
3550
|
+
abstract generatePopupItemsAsync?(feature: FeatureLike): Promise<ILayerPopupItem[]>;
|
|
3551
|
+
abstract getCustomParams(action: 'getmap' | 'identify'): {
|
|
3552
|
+
[key: string]: any;
|
|
3553
|
+
};
|
|
3554
|
+
abstract getFeatureTitle?(f: FeatureLike): string;
|
|
3555
|
+
}
|
|
3556
|
+
export class WmsLayer extends WmsLayerBase {
|
|
3557
|
+
authService: AuthService;
|
|
3558
|
+
constructor(ld: LayerDefinitionWms, _legImgSize?: number);
|
|
3559
|
+
getCustomParams(action: 'getmap' | 'identify'): {
|
|
3560
|
+
[key: string]: any;
|
|
3561
|
+
};
|
|
3562
|
+
getFeatureTitle?(f: FeatureLike): string;
|
|
3563
|
+
queryIdentifyAsync?(data: MapIdentifyData): AsyncOpResult<IdentifyResultItem[]>;
|
|
3564
|
+
convertFeaturesToIdentifyResul(res: Feature[]): OpResult<IdentifyResultItem[]>;
|
|
3565
|
+
queryGeometryAsync(geom: Geometry, max?: number, layernames?: string[]): AsyncOpResult<IdentifyResultItem[]>;
|
|
3566
|
+
generatePopupItemsAsync?(feature: FeatureLike): Promise<ILayerPopupItem[]>;
|
|
3567
|
+
getLegendInfos(): LayerLegendSymbolInfo[];
|
|
3568
|
+
protected updateLegendDivAsync(): Promise<void>;
|
|
3569
|
+
protected createLegendImgElement(imgSrc: string): HTMLElement;
|
|
3570
|
+
}
|
|
3571
|
+
export class SymbologyFactory {
|
|
3572
|
+
static readonly DefaultSymbolNum = -9999;
|
|
3573
|
+
static readonly SelectionColor = "rgb(83, 234, 253)";
|
|
3574
|
+
static readonly FlashColor = "rgb(83, 234, 253)";
|
|
3575
|
+
static createSimplePoint(color: ColorLike, radius?: number): Style;
|
|
3576
|
+
static createSimpleLine(color: ColorLike, width?: number): Style;
|
|
3577
|
+
static createSimplePolygon(color: string, strokeWidth?: number, fillOpacity?: number): Style;
|
|
3578
|
+
static createStyleFromDef(def: LayerSymbology): Style | Map<number, Style>;
|
|
3579
|
+
static createFlashedStyles(): Map<BasicGeometryTypes, Style[]>;
|
|
3580
|
+
static createHoverStyles(): Map<BasicGeometryTypes, Style>;
|
|
3581
|
+
static createSelectionStyles(): Map<BasicGeometryTypes, Style>;
|
|
3582
|
+
static getSelectionSymbol(): Style;
|
|
3583
|
+
static createCanvas(style: Style, type: BasicGeometryTypes): HTMLCanvasElement;
|
|
3584
|
+
static createCanvasFromFeature(style: Style, feature: Feature, width?: number, height?: number): HTMLCanvasElement;
|
|
3585
|
+
static createGlowedLine(color: string, steps?: number): Style[];
|
|
3586
|
+
static createGlowedPoint(color: string, steps?: number): Style[];
|
|
3587
|
+
static createGlowedPolygon(color: string, steps?: number): Style[];
|
|
3588
|
+
}
|
|
3589
|
+
export function getLayerProps(layer: Layer): LayerProperties;
|
|
3590
|
+
declare class FeatureContextMenuComponent extends BaseElement implements ICommandDisplayer {
|
|
3591
|
+
action: FeatureContextMenuItemAction;
|
|
3592
|
+
_closeHandler: number;
|
|
3593
|
+
constructor(_loc: {
|
|
3594
|
+
x: number;
|
|
3595
|
+
y: number;
|
|
3596
|
+
}, items: IFeatureCmItem[], action: FeatureContextMenuItemAction, isGlass: boolean);
|
|
3597
|
+
setActive(key: string, value: boolean): void;
|
|
3598
|
+
setDisabled(key: string, value: boolean): void;
|
|
3599
|
+
onConnected(): void;
|
|
3600
|
+
onItemMouseEnter(child: ContextMenuItemComponent): void;
|
|
3601
|
+
onItemMouseLeave(child: ContextMenuItemComponent): void;
|
|
3602
|
+
onItemMouseClick(child: ContextMenuItemComponent): void;
|
|
3603
|
+
_groupItems(items: IFeatureCmItem[]): Array<{
|
|
3604
|
+
title: string;
|
|
3605
|
+
items: IFeatureCmItem[];
|
|
3606
|
+
}>;
|
|
3607
|
+
}
|
|
3608
|
+
declare class StaticFeatureContextMenuComponent extends BaseElement implements ICommandDisplayer {
|
|
3609
|
+
constructor(_parentElm: HTMLElement, isGlass: boolean);
|
|
3610
|
+
show(_loc: {
|
|
3611
|
+
x: number;
|
|
3612
|
+
y: number;
|
|
3613
|
+
}, items: IFeatureCmItem[], action: FeatureContextMenuItemAction): void;
|
|
3614
|
+
setActive(key: string, value: boolean): void;
|
|
3615
|
+
setDisabled(key: string, value: boolean): void;
|
|
3616
|
+
onItemMouseEnter(child: ContextMenuItemComponent): void;
|
|
3617
|
+
onItemMouseLeave(child: ContextMenuItemComponent): void;
|
|
3618
|
+
onItemMouseClick(child: ContextMenuItemComponent): void;
|
|
3619
|
+
_groupItems(items: IFeatureCmItem[]): Array<{
|
|
3620
|
+
title: string;
|
|
3621
|
+
items: IFeatureCmItem[];
|
|
3622
|
+
}>;
|
|
3623
|
+
}
|
|
3624
|
+
declare class ContextMenuItemComponent extends BaseElement {
|
|
3625
|
+
item: IFeatureCmItem;
|
|
3626
|
+
constructor(menu: FeatureContextMenuComponent | StaticFeatureContextMenuComponent, item: IFeatureCmItem, disabled?: boolean);
|
|
3627
|
+
}
|
|
3628
|
+
interface ExtentHistoryOptions {
|
|
3629
|
+
maxSize?: number;
|
|
3630
|
+
minPixelDelta?: number;
|
|
3631
|
+
}
|
|
3632
|
+
interface ExtentSnapshot {
|
|
3633
|
+
center: number[];
|
|
3634
|
+
resolution: number;
|
|
3635
|
+
rotation: number;
|
|
3636
|
+
}
|
|
3637
|
+
type ExtentHistoryEventType = 'change';
|
|
3638
|
+
interface ExtentHistoryChangeEvent {
|
|
3639
|
+
canGoPrevious: boolean;
|
|
3640
|
+
canGoNext: boolean;
|
|
3641
|
+
currentIndex: number;
|
|
3642
|
+
historySize: number;
|
|
3643
|
+
}
|
|
3644
|
+
type ChangeListener = (event: ExtentHistoryChangeEvent) => void;
|
|
3645
|
+
declare class ExtentHistory {
|
|
3646
|
+
suspended: boolean;
|
|
3647
|
+
constructor(map: OlMap, options?: ExtentHistoryOptions);
|
|
3648
|
+
previous(): boolean;
|
|
3649
|
+
next(): boolean;
|
|
3650
|
+
canGoPrevious(): boolean;
|
|
3651
|
+
canGoNext(): boolean;
|
|
3652
|
+
clear(): void;
|
|
3653
|
+
getCurrentIndex(): number;
|
|
3654
|
+
getHistorySize(): number;
|
|
3655
|
+
getStack(): ReadonlyArray<ExtentSnapshot>;
|
|
3656
|
+
on(event: ExtentHistoryEventType, listener: ChangeListener): void;
|
|
3657
|
+
un(event: ExtentHistoryEventType, listener: ChangeListener): void;
|
|
3658
|
+
dispose(): void;
|
|
3659
|
+
}
|
|
3660
|
+
export type LayerAnimation = {
|
|
3661
|
+
layer: IMapLayer;
|
|
3662
|
+
animateFunction: () => void;
|
|
3663
|
+
minZoom: number;
|
|
3664
|
+
};
|
|
3665
|
+
export class MapManager {
|
|
3666
|
+
eventService: EventService;
|
|
3667
|
+
commandService: CommandService;
|
|
3668
|
+
commandDisplayer: CmxCommandDisplayer;
|
|
3669
|
+
extentHistory: ExtentHistory;
|
|
3670
|
+
constructor();
|
|
3671
|
+
get time(): number;
|
|
3672
|
+
get isFirstRenderComplete(): boolean;
|
|
3673
|
+
init(mapCompElm: HTMLElement, map: OMap, view: View, popupDiv: HTMLElement, layerManager: ILayerManager, mapStartupSetting: MapStartupSettings): void;
|
|
3674
|
+
get map(): OMap;
|
|
3675
|
+
get view(): View;
|
|
3676
|
+
get zoom(): number;
|
|
3677
|
+
startDraw(draw: Draw): void;
|
|
3678
|
+
cancelDraw(): void;
|
|
3679
|
+
setSelectedFeatures(dict?: Map<IMapLayer, FeatureLike[]>): void;
|
|
3680
|
+
showPopup(at: Coordinate, content: HTMLElement): void;
|
|
3681
|
+
startAnimate(key: string, animation: LayerAnimation): void;
|
|
3682
|
+
endAnimate(key: string): void;
|
|
3683
|
+
hasAnimate(key: string): boolean;
|
|
3684
|
+
stopAnimations(): Promise<void>;
|
|
3685
|
+
resumeAnimation(): void;
|
|
3686
|
+
changeCursor(cursor?: string): void;
|
|
3687
|
+
getCurrentIdentifyDataFor(pixel: Pixel): MapIdentifyData;
|
|
3688
|
+
getOneFeatureAt(pixel: Pixel, opt: GetOneFeatureOptions): Promise<IClickItem>;
|
|
3689
|
+
getMultipleFeatureIn(poly: Geometry, opt: GetMultiFeatureOptions): Promise<IClickItem[]>;
|
|
3690
|
+
showContextMenuAt(pageX: number, pageY: number, items: IFeatureCmItem[], itemAction: FeatureContextMenuItemAction, isGlass: boolean): Promise<void>;
|
|
3691
|
+
selectAreaFromMap(mode: 'freehand' | 'polygon', maxKm2?: number, abort?: AbortSignal, waitMessage?: string): AsyncOpResult<Polygon>;
|
|
3692
|
+
goto(coordinate: Coordinate, maxZoom?: number, duration?: number): void;
|
|
3693
|
+
gotoFullExtent(): void;
|
|
3694
|
+
gotoFly(location: Coordinate): Promise<void>;
|
|
3695
|
+
flash(ed: MapFlashGeomRequestData): Promise<boolean>;
|
|
3696
|
+
highlightInventory(geom: Geometry, zoom?: boolean): void;
|
|
3697
|
+
clearInventoryHighlight(): void;
|
|
3698
|
+
flashGeom(geom: Geometry, hideAfter?: boolean): void;
|
|
3699
|
+
clearHighlights(): void;
|
|
3700
|
+
flashGeojson(gjs: any, hideAfter?: boolean): void;
|
|
3701
|
+
}
|
|
3702
|
+
declare class CmxCommandDisplayer implements ICommandDisplayer {
|
|
3703
|
+
setCmx(comp: FeatureContextMenuComponent): void;
|
|
3704
|
+
setActive(key: string, value: boolean): void;
|
|
3705
|
+
setDisabled(key: string, value: boolean): void;
|
|
3706
|
+
isExist(): boolean;
|
|
3707
|
+
}
|
|
3708
|
+
type _OLayerType1 = VectorLayer<Vector<Feature<Point>>>;
|
|
3709
|
+
export class FlashLayer extends MapLayerBase<_OLayerType1, LayerDefinitionCustom> {
|
|
3710
|
+
identifyType: 'none';
|
|
3711
|
+
mapManager: MapManager;
|
|
3712
|
+
onAdd(): void;
|
|
3713
|
+
constructor();
|
|
3714
|
+
getLegendInfos(): LayerLegendSymbolInfo[];
|
|
3715
|
+
flash(feature: any): void;
|
|
3716
|
+
}
|
|
3717
|
+
export class LayerManager implements ILayerManager {
|
|
3718
|
+
basemapLayer: IMapLayer;
|
|
3719
|
+
layerList: IndexedList<IMapLayer>;
|
|
3720
|
+
eventService: EventService;
|
|
3721
|
+
constructor();
|
|
3722
|
+
get activeBaseMapType(): BaseMapTypes;
|
|
3723
|
+
init(settings: MapStartupSettings): Promise<void>;
|
|
3724
|
+
findLayer(key: string): IMapLayer;
|
|
3725
|
+
onExtentChanged(loc: LastViewLocation): void;
|
|
3726
|
+
getSelectableLayers(): IMapLayer[];
|
|
3727
|
+
addLayer(lyr: IMapLayer): void;
|
|
3728
|
+
removeLayer(key: string): void;
|
|
3729
|
+
}
|
|
3730
|
+
type MapBarComponentProperties = {
|
|
3731
|
+
parent: MapComponent;
|
|
3732
|
+
bottomPanel?: {
|
|
3733
|
+
buttonTooltip?: string;
|
|
3734
|
+
buttonIconClass?: string;
|
|
3735
|
+
factory?: Action<HTMLElement>;
|
|
3736
|
+
};
|
|
3737
|
+
};
|
|
3738
|
+
declare class MapBarComponent extends BaseElement {
|
|
3739
|
+
constructor(_props: MapBarComponentProperties);
|
|
3740
|
+
get controls(): Control[];
|
|
3741
|
+
}
|
|
3742
|
+
export class GoogleApiChannel {
|
|
3743
|
+
proxyFetcher: ProxyFetcher;
|
|
3744
|
+
constructor();
|
|
3745
|
+
geocodeAddress(text: string): AsyncOpResult<Google.V3.GeocodeResult[]>;
|
|
3746
|
+
}
|
|
3747
|
+
export class GoogleGeocodingSearchSource implements IRemoteSearchSource {
|
|
3748
|
+
actions?: IKeyedButtonInfo[];
|
|
3749
|
+
onAction?: (actionKey: string, item: SearchResult) => void;
|
|
3750
|
+
key: LookupValue;
|
|
3751
|
+
title: string;
|
|
3752
|
+
type: 'remote';
|
|
3753
|
+
placeholder: string;
|
|
3754
|
+
disabled: boolean;
|
|
3755
|
+
constructor();
|
|
3756
|
+
init(): void;
|
|
3757
|
+
validate(text: string): OpResult;
|
|
3758
|
+
runAsync(text: string): AsyncOpResult<SearchResult[]>;
|
|
3759
|
+
}
|
|
3760
|
+
declare class MapSearchComponent extends BaseElement {
|
|
3761
|
+
eventService: EventService;
|
|
3762
|
+
constructor(settings: {
|
|
3763
|
+
sources?: SearchSource[];
|
|
3764
|
+
});
|
|
3765
|
+
protected onConnected(isFirst?: boolean): void;
|
|
3766
|
+
}
|
|
3767
|
+
export class MapComponent extends BaseElement {
|
|
3768
|
+
mapManager: MapManager;
|
|
3769
|
+
layerManager: LayerManager;
|
|
3770
|
+
eventService: EventService;
|
|
3771
|
+
map: OMap;
|
|
3772
|
+
view: View;
|
|
3773
|
+
mapBar: MapBarComponent;
|
|
3774
|
+
mapSearch: MapSearchComponent;
|
|
3775
|
+
popupElm: HTMLDivElement;
|
|
3776
|
+
initAsync(settings: MapStartupSettings): Promise<void>;
|
|
3777
|
+
get time(): number;
|
|
3778
|
+
set time(value: number);
|
|
3779
|
+
onConnected(): void;
|
|
3780
|
+
}
|
|
3781
|
+
export class LegendComponent extends BaseElement {
|
|
3782
|
+
layerManager: LayerManager;
|
|
3783
|
+
mapManager: MapManager;
|
|
3784
|
+
eventService: EventService;
|
|
3785
|
+
listComp: ListComponent<IMapLayer>;
|
|
3786
|
+
constructor(lazy?: boolean);
|
|
3787
|
+
_attach(): void;
|
|
3788
|
+
_createListItem(layer: ILayer): HTMLElement;
|
|
3789
|
+
}
|
|
3790
|
+
export class LayerLegentItem extends BaseElement {
|
|
3791
|
+
get layerId(): string;
|
|
3792
|
+
constructor(info: LayerLegendSymbolInfo, skipTitle: boolean);
|
|
3793
|
+
}
|
|
3794
|
+
export class TocComponent extends BaseElement {
|
|
3795
|
+
layerManager: LayerManager;
|
|
3796
|
+
constructor();
|
|
3797
|
+
}
|
|
3798
|
+
export interface StreetViewPov {
|
|
3799
|
+
heading: number;
|
|
3800
|
+
pitch: number;
|
|
3801
|
+
zoom?: number;
|
|
3802
|
+
}
|
|
3803
|
+
export interface StreetViewComponentOptions {
|
|
3804
|
+
location?: Coordinate;
|
|
3805
|
+
pov?: StreetViewPov;
|
|
3806
|
+
searchRadius?: number;
|
|
3807
|
+
}
|
|
3808
|
+
export class StreetViewComponent extends BasePanelElement {
|
|
3809
|
+
constructor(_options: StreetViewComponentOptions);
|
|
3810
|
+
protected onConnected(isFirst?: boolean): void;
|
|
3811
|
+
canClose(): Promise<boolean>;
|
|
3812
|
+
setLocation(location: Coordinate, pov?: StreetViewPov): Promise<boolean>;
|
|
3813
|
+
getLocation(): Coordinate;
|
|
3814
|
+
getPov(): StreetViewPov;
|
|
3815
|
+
}
|
|
3816
|
+
export type TrCrsGroup = 'geo' | 'itrf96-tm' | 'ed50-tm' | 'ed50-utm' | 'wgs84-utm' | 'other';
|
|
3817
|
+
export interface TrCrs {
|
|
3818
|
+
key: string;
|
|
3819
|
+
title: string;
|
|
3820
|
+
group: TrCrsGroup;
|
|
3821
|
+
projected: boolean;
|
|
3822
|
+
decimals: number;
|
|
3823
|
+
}
|
|
3824
|
+
export const TR_TM3_MERIDIANS: readonly [27, 30, 33, 36, 39, 42, 45];
|
|
3825
|
+
export const TR_UTM_ZONES: readonly [35, 36, 37, 38];
|
|
3826
|
+
export interface TrCrsDescription {
|
|
3827
|
+
crs: TrCrs;
|
|
3828
|
+
coord: Coordinate;
|
|
3829
|
+
}
|
|
3830
|
+
export class TrCrsHelper {
|
|
3831
|
+
static readonly list: ReadonlyArray<TrCrs>;
|
|
3832
|
+
static get wgs84(): TrCrs;
|
|
3833
|
+
static find(key: string): TrCrs | undefined;
|
|
3834
|
+
static isValidWgs84(coord: Coordinate): boolean;
|
|
3835
|
+
static toWgs84(crs: TrCrs, coord: Coordinate): Coordinate;
|
|
3836
|
+
static fromWgs84(crs: TrCrs, lonLat: Coordinate): Coordinate;
|
|
3837
|
+
static tm3MeridianOf(lon: number): number;
|
|
3838
|
+
static utmZoneOf(lon: number): number;
|
|
3839
|
+
static describe(lonLat: Coordinate): TrCrsDescription[];
|
|
3840
|
+
static formatDms(value: number, positiveHem: string, negativeHem: string): string;
|
|
3841
|
+
}
|
|
3842
|
+
export class GoToComponent extends BaseElement {
|
|
3843
|
+
static minZoom: number;
|
|
3844
|
+
mapManager: MapManager;
|
|
3845
|
+
eventService: EventService;
|
|
3846
|
+
constructor(wgs84Coord?: Coordinate);
|
|
3847
|
+
protected onConnected(): void;
|
|
3848
|
+
setLocation(wgs84Coord: Coordinate): void;
|
|
3849
|
+
}
|
|
3850
|
+
export type PrintPaperSize = 'A4' | 'A3';
|
|
3851
|
+
export type PrintOrientation = 'portrait' | 'landscape';
|
|
3852
|
+
export type PrintTemplate = 'classic' | 'band' | 'overlay';
|
|
3853
|
+
export type PrintFormat = 'pdf' | 'png' | 'jpeg';
|
|
3854
|
+
export interface PrintOptions {
|
|
3855
|
+
template: PrintTemplate;
|
|
3856
|
+
paper: PrintPaperSize;
|
|
3857
|
+
orientation: PrintOrientation;
|
|
3858
|
+
scale: number | null;
|
|
3859
|
+
dpi: number;
|
|
3860
|
+
title: string;
|
|
3861
|
+
showLegend: boolean;
|
|
3862
|
+
showScaleBar: boolean;
|
|
3863
|
+
showNorthArrow: boolean;
|
|
3864
|
+
showDate: boolean;
|
|
3865
|
+
}
|
|
3866
|
+
export interface PrintLegendItem {
|
|
3867
|
+
kind: 'layer' | 'group' | 'row';
|
|
3868
|
+
text: string;
|
|
3869
|
+
symbol?: CanvasImageSource;
|
|
3870
|
+
symbolW?: number;
|
|
3871
|
+
symbolH?: number;
|
|
3872
|
+
}
|
|
3873
|
+
export interface PrintTexts {
|
|
3874
|
+
legend: string;
|
|
3875
|
+
scale: string;
|
|
3876
|
+
date: string;
|
|
3877
|
+
north: string;
|
|
3878
|
+
map: string;
|
|
3879
|
+
more: string;
|
|
3880
|
+
}
|
|
3881
|
+
export interface PrintRect {
|
|
3882
|
+
x: number;
|
|
3883
|
+
y: number;
|
|
3884
|
+
w: number;
|
|
3885
|
+
h: number;
|
|
3886
|
+
}
|
|
3887
|
+
export interface PrintLayout {
|
|
3888
|
+
page: {
|
|
3889
|
+
w: number;
|
|
3890
|
+
h: number;
|
|
3891
|
+
};
|
|
3892
|
+
f: number;
|
|
3893
|
+
map: PrintRect;
|
|
3894
|
+
title?: PrintRect & {
|
|
3895
|
+
overlay: boolean;
|
|
3896
|
+
};
|
|
3897
|
+
legend?: PrintRect & {
|
|
3898
|
+
overlay: boolean;
|
|
3899
|
+
columns: number;
|
|
3900
|
+
};
|
|
3901
|
+
info?: PrintRect & {
|
|
3902
|
+
overlay: boolean;
|
|
3903
|
+
mode: 'row' | 'stack';
|
|
3904
|
+
};
|
|
3905
|
+
north?: PrintRect & {
|
|
3906
|
+
overlay: boolean;
|
|
3907
|
+
};
|
|
3908
|
+
}
|
|
3909
|
+
export interface PrintFrame {
|
|
3910
|
+
resolution: number;
|
|
3911
|
+
cssW: number;
|
|
3912
|
+
cssH: number;
|
|
3913
|
+
metersPerMm: number;
|
|
3914
|
+
scale: number;
|
|
3915
|
+
rotation: number;
|
|
3916
|
+
}
|
|
3917
|
+
export interface PrintMapImage {
|
|
3918
|
+
canvas: HTMLCanvasElement;
|
|
3919
|
+
frame: PrintFrame;
|
|
3920
|
+
}
|
|
3921
|
+
export class MapPrintHelper {
|
|
3922
|
+
static fontFamily: string;
|
|
3923
|
+
static pageSize(paper: PrintPaperSize, orientation: PrintOrientation): {
|
|
3924
|
+
w: number;
|
|
3925
|
+
h: number;
|
|
3926
|
+
};
|
|
3927
|
+
static computeLayout(opt: PrintOptions): PrintLayout;
|
|
3928
|
+
static pixelRatio(map: OMap): number;
|
|
3929
|
+
static viewCenter(map: OMap): number[];
|
|
3930
|
+
static computeFrame(map: OMap, mapRect: PrintRect, dpi: number, scale: number | null): PrintFrame;
|
|
3931
|
+
static captureMapAsync(map: OMap, mapRect: PrintRect, dpi: number, scale: number | null): Promise<PrintMapImage>;
|
|
3932
|
+
static isCanvasReadable(canvas: HTMLCanvasElement): boolean;
|
|
3933
|
+
static toLegendSymbol(elm: HTMLElement): Promise<Pick<PrintLegendItem, 'symbol' | 'symbolW' | 'symbolH'> | null>;
|
|
3934
|
+
static renderPage(opt: PrintOptions, layout: PrintLayout, legend: PrintLegendItem[], mapImage: HTMLCanvasElement | null, frame: PrintFrame | null, date: Date, texts: PrintTexts, pxPerMm: number): HTMLCanvasElement;
|
|
3935
|
+
static formatDate(d: Date): string;
|
|
3936
|
+
static formatScale(scale: number): string;
|
|
3937
|
+
}
|
|
3938
|
+
export class PrintComponent extends BaseElement {
|
|
3939
|
+
mapManager: MapManager;
|
|
3940
|
+
layerManager: LayerManager;
|
|
3941
|
+
protected onConnected(): void;
|
|
3942
|
+
onPanelShow(): void;
|
|
3943
|
+
onPanelHide(): void;
|
|
3944
|
+
onPanelRemoved(): void;
|
|
3945
|
+
}
|
|
3946
|
+
export abstract class GisAppService {
|
|
3947
|
+
mapComponent: MapComponent;
|
|
3948
|
+
application: Application;
|
|
3949
|
+
eventService: EventService;
|
|
3950
|
+
commandService: CommandService;
|
|
3951
|
+
startMapComponents(settings: MapStartupSettings): Promise<void>;
|
|
3952
|
+
}
|
|
3953
|
+
export type ColorInfo = string | Array<number>;
|
|
3954
|
+
export type StrokeInfo = {
|
|
3955
|
+
width: number;
|
|
3956
|
+
color: ColorInfo;
|
|
3957
|
+
dash?: number[];
|
|
3958
|
+
};
|
|
3959
|
+
export type FillInfo = {
|
|
3960
|
+
color: ColorInfo;
|
|
3961
|
+
};
|
|
3962
|
+
export type SimpleLineSymbolDef = {
|
|
3963
|
+
type: 'sls';
|
|
3964
|
+
} & StrokeInfo;
|
|
3965
|
+
export type SimpleFillSymbolDef = {
|
|
3966
|
+
type: 'sfs';
|
|
3967
|
+
stroke: StrokeInfo;
|
|
3968
|
+
} & FillInfo;
|
|
3969
|
+
export type SimplePointSymbolDef = {
|
|
3970
|
+
type: 'sps';
|
|
3971
|
+
radius: number;
|
|
3972
|
+
stroke?: StrokeInfo;
|
|
3973
|
+
} & FillInfo;
|
|
3974
|
+
export type IconPointSymbolDef = {
|
|
3975
|
+
type: 'ips';
|
|
3976
|
+
src: string;
|
|
3977
|
+
anchorOrigin?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
|
|
3978
|
+
color?: ColorInfo;
|
|
3979
|
+
displacement?: number[];
|
|
3980
|
+
opacity?: number;
|
|
3981
|
+
width?: number;
|
|
3982
|
+
height?: number;
|
|
3983
|
+
scale?: number;
|
|
3984
|
+
rotateWithView?: boolean;
|
|
3985
|
+
rotation?: number;
|
|
3986
|
+
declutterMode?: 'declutter' | 'obstacle' | 'none';
|
|
3987
|
+
};
|
|
3988
|
+
export type SimpleSymbolDef = SimpleFillSymbolDef | SimpleLineSymbolDef | SimplePointSymbolDef | IconPointSymbolDef;
|
|
3989
|
+
export type SimpleRendererDef = {
|
|
3990
|
+
type: 'sr';
|
|
3991
|
+
symbol: SimpleSymbolDef;
|
|
3992
|
+
};
|
|
3993
|
+
type UValData = number | string;
|
|
3994
|
+
export type UValInfo = {
|
|
3995
|
+
value: UValData;
|
|
3996
|
+
title: string;
|
|
3997
|
+
symbol: SimpleSymbolDef;
|
|
3998
|
+
};
|
|
3999
|
+
export type UVRendererDef = {
|
|
4000
|
+
type: 'uvr';
|
|
4001
|
+
uvals: UValInfo[];
|
|
4002
|
+
defaultSymbol?: SimpleSymbolDef;
|
|
4003
|
+
};
|
|
4004
|
+
export type RendererDef = SimpleRendererDef | UVRendererDef;
|
|
4005
|
+
export type MvtSubLayerInfo = {
|
|
4006
|
+
lyr: string;
|
|
4007
|
+
title: string;
|
|
4008
|
+
symbol: LayerSymbology;
|
|
4009
|
+
};
|
|
4010
|
+
export type MvtLayerProperties = LayerDefinitionCustom & {
|
|
4011
|
+
subLayerInfos: MvtSubLayerInfo[];
|
|
4012
|
+
};
|
|
4013
|
+
export type MvtFeatureInfo = {
|
|
4014
|
+
lyr: string;
|
|
4015
|
+
id: number;
|
|
4016
|
+
};
|
|
4017
|
+
type StyleRef = {
|
|
4018
|
+
flashStyle: Style[];
|
|
4019
|
+
selectionStyle: Style;
|
|
4020
|
+
hoverStyle: Style;
|
|
4021
|
+
styles: Map<number, Style>;
|
|
4022
|
+
symbolDef: Map<number, SimpleLayerSymbology>;
|
|
4023
|
+
};
|
|
4024
|
+
export abstract class MvtLayerBase<T extends MvtLayerProperties = MvtLayerProperties> extends MapLayerBase<VectorTileLayer, T> implements IMvtLayer {
|
|
4025
|
+
identifyType: 'mvt';
|
|
4026
|
+
protected _flashFeature: MvtFeatureInfo;
|
|
4027
|
+
protected _selectedFeatures: MvtFeatureInfo[];
|
|
4028
|
+
protected _hoverFeatures: MvtFeatureInfo[];
|
|
4029
|
+
protected _styleMap: Map<string, StyleRef>;
|
|
4030
|
+
protected storeService: StoreService;
|
|
4031
|
+
constructor(ld: T);
|
|
4032
|
+
abstract getIdentifyPriority(feature: FeatureLike): IdentifyPriority;
|
|
4033
|
+
prepareAsync(): Promise<boolean>;
|
|
4034
|
+
refresh(clear?: boolean): void;
|
|
4035
|
+
flash(feature?: RenderFeature): void;
|
|
4036
|
+
getLegendInfos(): LayerLegendSymbolInfo[];
|
|
4037
|
+
setFeaturesSelected?(features: FeatureLike[]): void;
|
|
4038
|
+
getFeatureTitle(f: FeatureLike): string;
|
|
4039
|
+
flashFeatures(f: FeatureLike): void;
|
|
4040
|
+
generatePopupItemsAsync(feature: FeatureLike): Promise<ILayerPopupItem[]>;
|
|
4041
|
+
protected onTimeChanged(): void;
|
|
4042
|
+
protected _createLayer(): VectorTileLayer;
|
|
4043
|
+
protected createRenderer(): StyleLike | FlatStyleLike;
|
|
4044
|
+
}
|
|
4045
|
+
export abstract class GroupLayerBase extends MapLayerBase<GroupLayer, GroupLayerDefinition> {
|
|
4046
|
+
layers: IMapLayer[];
|
|
4047
|
+
constructor(ld: GroupLayerDefinition);
|
|
4048
|
+
abstract createLayerFor(definition: LayerDefinitionBase): IMapLayer;
|
|
4049
|
+
getLegendInfos(): LayerLegendSymbolInfo[];
|
|
4050
|
+
}
|
|
4051
|
+
export class AgsFeatureServiceChannel {
|
|
4052
|
+
storeService: StoreService;
|
|
4053
|
+
constructor(_serviceUrlBase: string);
|
|
4054
|
+
get ok(): boolean;
|
|
4055
|
+
get serviceInfo(): Esri.ServerTypes.IFeatureServiceDefinition;
|
|
4056
|
+
connectAsync(): AsyncOpResult;
|
|
4057
|
+
addFeaturesToLayer(layerId: number, features: GeoJSON.Feature[]): AsyncOpResult<Esri.ServerTypes.FeatureServiceEditResult[]>;
|
|
4058
|
+
updateFeaturesToLayer(layerId: number, features: GeoJSON.Feature[]): AsyncOpResult<Esri.ServerTypes.FeatureServiceEditResult[]>;
|
|
4059
|
+
deleteFeaturesToLayer(layerId: number, objectIds: number[]): AsyncOpResult<Esri.ServerTypes.FeatureServiceEditResult[]>;
|
|
4060
|
+
}
|
|
4061
|
+
export class OlStyleHelper {
|
|
4062
|
+
static stylegeometry2canvas(style: Style, type: BasicGeometryTypes): HTMLCanvasElement;
|
|
4063
|
+
static stylefeature2canvas(style: Style, feature: Feature, width?: number, height?: number): HTMLCanvasElement;
|
|
4064
|
+
static createStyleFromJson(sd: SimpleSymbolDef): Style | null;
|
|
4065
|
+
static createSFS(sfs: SimpleFillSymbolDef): Style;
|
|
4066
|
+
static createSLS(sls: SimpleLineSymbolDef): Style;
|
|
4067
|
+
static createSPS(sps: SimplePointSymbolDef): Style;
|
|
4068
|
+
static createIPS(ips: IconPointSymbolDef): Style;
|
|
4069
|
+
}
|
|
4070
|
+
|
|
4071
|
+
//# sourceMappingURL=index.d.ts.map
|