@vcmap/ui 6.0.0-rc.7 → 6.0.0-rc.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-3fd82bc2.js → core-6f2522e5.js} +3551 -3506
- package/dist/assets/core.js +1 -1
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-bf3d1f84.css +1 -0
- package/dist/assets/{ui-c6eb55a5.js → ui-bf3d1f84.js} +3465 -3423
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-c3b6c9b3.js → vuetify-99bf601c.js} +1 -1
- package/dist/assets/vuetify.js +1 -1
- package/package.json +2 -2
- package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +3 -4
- package/src/actions/StyleSelector.vue +1 -1
- package/src/application/VcsApp.vue +29 -1
- package/src/application/VcsApp.vue.d.ts +5 -1
- package/src/application/VcsAppWrapper.vue +1 -1
- package/src/application/VcsAttributions.vue +1 -1
- package/src/application/VcsAttributionsFooter.vue +3 -1
- package/src/application/VcsContainer.vue.d.ts +5 -1
- package/src/application/VcsMainMap.vue +1 -1
- package/src/application/VcsMap.vue +1 -0
- package/src/application/VcsNavbar.vue +1 -1
- package/src/application/VcsPositionDisplay.vue +3 -3
- package/src/application/VcsSettings.vue +1 -1
- package/src/application/VcsSplashScreen.vue +1 -0
- package/src/application/VcsTextPage.vue +1 -1
- package/src/application/VcsTextPageFooter.vue +3 -1
- package/src/components/buttons/VcsActionButtonList.vue +5 -1
- package/src/components/buttons/VcsButton.vue +3 -3
- package/src/components/buttons/VcsFormButton.vue +2 -2
- package/src/components/buttons/VcsToolButton.vue +2 -2
- package/src/components/extent/VcsExtent.vue +1 -1
- package/src/components/extent/VcsExtentEditor.vue +1 -0
- package/src/components/flight/VcsFlightAnchorsComponent.vue +1 -0
- package/src/components/flight/VcsFlightComponent.vue +1 -1
- package/src/components/flight/VcsFlightEditor.vue +1 -0
- package/src/components/flight/VcsFlightPlayer.vue +1 -1
- package/src/components/form-inputs-controls/VcsTextField.vue +1 -1
- package/src/components/form-inputs-controls/VcsWizard.vue +1 -1
- package/src/components/form-inputs-controls/VcsWizardStep.vue +1 -0
- package/src/components/form-output/VcsMarkdown.vue +1 -1
- package/src/components/import/VcsFileDrop.vue +1 -1
- package/src/components/import/VcsImportComponent.vue +1 -1
- package/src/components/lists/VcsListItemComponent.vue +5 -1
- package/src/components/lists/VcsTreeviewSearchbar.vue +1 -1
- package/src/components/lists/VcsTreeviewTitle.vue +1 -1
- package/src/components/notification/VcsBadge.vue +2 -2
- package/src/components/notification/VcsHelp.vue +1 -1
- package/src/components/plugins/AbstractConfigEditor.vue +1 -1
- package/src/components/section/VcsExpansionPanel.vue +5 -1
- package/src/components/style/MenuWrapper.vue +1 -1
- package/src/components/style/VcsFeatureStyleComponent.vue +1 -0
- package/src/components/style/VcsFillMenu.vue +1 -0
- package/src/components/style/VcsFillSelector.vue +1 -0
- package/src/components/style/VcsImageMenu.vue +1 -0
- package/src/components/style/VcsImageSelector.vue +1 -1
- package/src/components/style/VcsStrokeMenu.vue +1 -0
- package/src/components/style/VcsStrokeSelector.vue +1 -1
- package/src/components/style/VcsTextMenu.vue +1 -0
- package/src/components/style/VcsTextSelector.vue +1 -1
- package/src/components/style/VcsVectorStyleComponent.vue +1 -1
- package/src/components/tables/VcsDataTable.vue +1 -1
- package/src/components/tables/VcsTable.vue +1 -0
- package/src/components/tables/VcsTableCell.vue +1 -1
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +1 -1
- package/src/components/vector-properties/VcsFeatureTransforms.vue +1 -1
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +1 -0
- package/src/components/viewpoint/VcsViewpointComponent.vue +1 -1
- package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
- package/src/contentTree/LayerTree.vue +1 -1
- package/src/featureInfo/AddressBalloonComponent.vue +1 -1
- package/src/featureInfo/BalloonComponent.vue +1 -1
- package/src/featureInfo/IframeComponent.vue +6 -1
- package/src/featureInfo/MarkdownBalloonComponent.vue +1 -1
- package/src/legend/StyleLegendItem.vue +1 -1
- package/src/legend/VcsLegend.vue +1 -1
- package/src/manager/collectionManager/CollectionComponent.vue +1 -0
- package/src/manager/contextMenu/ContextMenuComponent.vue +1 -1
- package/src/manager/panel/PanelManagerComponent.vue +2 -2
- package/src/manager/toolbox/GroupToolboxComponent.vue +2 -2
- package/src/manager/toolbox/SelectToolboxComponent.vue +2 -2
- package/src/manager/toolbox/ToolboxManagerComponent.vue +12 -1
- package/src/manager/window/WindowComponent.vue +1 -1
- package/src/manager/window/WindowManager.vue +4 -1
- package/src/navigation/MapNavigation.vue +4 -1
- package/src/navigation/ObliqueRotation.vue +2 -2
- package/src/navigation/OrientationToolsButton.vue +1 -1
- package/src/navigation/TiltSlider.vue +1 -0
- package/src/navigation/VcsCompass.vue +1 -1
- package/src/navigation/VcsZoomButton.vue +1 -1
- package/src/notifier/NotifierComponent.vue +1 -1
- package/src/search/ResultItem.vue +1 -1
- package/src/search/ResultsComponent.vue +1 -1
- package/src/search/SearchComponent.vue +3 -1
- package/src/uiConfig.d.ts +13 -4
- package/src/uiConfig.js +3 -2
- package/src/vcsUiApp.d.ts +15 -16
- package/src/vcsUiApp.js +13 -11
- package/dist/assets/ui-c6eb55a5.css +0 -1
- /package/dist/assets/{cesium-2afc3568.js → cesium-2ec6aae0.js} +0 -0
- /package/dist/assets/{ol-edf7bfb3.js → ol-b0e134cb.js} +0 -0
- /package/dist/assets/{vue-aefad438.js → vue-43880c5a.js} +0 -0
- /package/dist/assets/{vuetify-c3b6c9b3.css → vuetify-99bf601c.css} +0 -0
package/src/legend/VcsLegend.vue
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<div
|
3
|
-
class="vcs-panel-frame"
|
3
|
+
class="vcs-panel-frame panel-manager-component"
|
4
4
|
@mouseup="setResizing(undefined)"
|
5
5
|
@mouseleave="setResizing(undefined)"
|
6
6
|
ref="panelFrameRef"
|
@@ -85,7 +85,7 @@
|
|
85
85
|
* @description PanelManager rendering all Panels
|
86
86
|
*/
|
87
87
|
export default {
|
88
|
-
name: '
|
88
|
+
name: 'VcsPanelManagerComponent',
|
89
89
|
components: {
|
90
90
|
VcsMainMap,
|
91
91
|
PanelComponent,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<div v-if="orderedButtons.length > 0">
|
2
|
+
<div v-if="orderedButtons.length > 0" class="group-toolbox-component">
|
3
3
|
<v-menu
|
4
4
|
v-model="open"
|
5
5
|
@update:model-value="$emit('toggle', open)"
|
@@ -66,7 +66,7 @@
|
|
66
66
|
* @vue-computed {boolean} hasActiveAction - Whether the group has an active action.
|
67
67
|
*/
|
68
68
|
export default {
|
69
|
-
name: '
|
69
|
+
name: 'GroupToolboxComponent',
|
70
70
|
components: {
|
71
71
|
VcsToolButton,
|
72
72
|
VMenu,
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<div
|
3
3
|
v-if="group.action"
|
4
|
-
class="d-flex"
|
4
|
+
class="d-flex select-toolbox-component"
|
5
5
|
:class="{ 'vcs-toolbox-action-select-button--active': open }"
|
6
6
|
>
|
7
7
|
<VcsToolButton
|
@@ -75,7 +75,7 @@
|
|
75
75
|
* @vue-prop {SelectToolboxComponent} group - A toolbox group of type 'select'.
|
76
76
|
*/
|
77
77
|
export default {
|
78
|
-
name: '
|
78
|
+
name: 'SelectToolboxComponent',
|
79
79
|
components: {
|
80
80
|
VcsToolButton,
|
81
81
|
VMenu,
|
@@ -1,9 +1,10 @@
|
|
1
1
|
<template>
|
2
2
|
<v-toolbar
|
3
3
|
v-if="toolboxOpen && orderedGroups.length > 0 && mdAndUp"
|
4
|
-
class="vcs-toolbox mx-auto elevation-4 opacity-80"
|
4
|
+
class="vcs-toolbox mx-auto elevation-4 opacity-80 toolbox-manager-component"
|
5
5
|
:class="{
|
6
6
|
'rounded-b': !open,
|
7
|
+
'vcs-toolbox__secondary': !isDefaultToolbox,
|
7
8
|
}"
|
8
9
|
:height="toolboxHeight"
|
9
10
|
:style="{ zIndex }"
|
@@ -41,6 +42,16 @@
|
|
41
42
|
</template>
|
42
43
|
|
43
44
|
<style lang="scss" scoped>
|
45
|
+
.vcs-toolbox__secondary {
|
46
|
+
&.vcs-toolbox.v-theme {
|
47
|
+
&--light {
|
48
|
+
background-color: rgba(var(--v-theme-primary-lighten-3));
|
49
|
+
}
|
50
|
+
&--dark {
|
51
|
+
background-color: rgba(var(--v-theme-primary-darken-4));
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
44
55
|
.vcs-toolbox {
|
45
56
|
margin-top: 2px;
|
46
57
|
width: fit-content;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<v-sheet
|
3
3
|
:id="`window-component--${windowState.id}`"
|
4
|
-
class="elevation-3 position-absolute d-flex flex-column"
|
4
|
+
class="elevation-3 position-absolute d-flex flex-column window-component"
|
5
5
|
v-bind="$attrs"
|
6
6
|
@dragstart="dragStart"
|
7
7
|
@dragend="dragEnd"
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<div class="d-inline-flex rounded
|
2
|
+
<div class="d-inline-flex rounded oblique-orientation">
|
3
3
|
<div class="d-inline-flex rounded inner">
|
4
4
|
<OrientationToolsButton
|
5
5
|
@click="input(-90)"
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</script>
|
57
57
|
|
58
58
|
<style lang="scss" scoped>
|
59
|
-
.
|
59
|
+
.oblique-orientation {
|
60
60
|
box-shadow: rgba(0, 0, 0, 0.15) 0 2px 2px 0;
|
61
61
|
.inner {
|
62
62
|
box-shadow: rgba(0, 0, 0, 0.25) 0 -2px 2px 0 inset;
|
@@ -4,7 +4,7 @@
|
|
4
4
|
transform: `rotate(${compassRotation}deg)`,
|
5
5
|
}"
|
6
6
|
@click="$emit('update:modelValue', 0)"
|
7
|
-
class="d-flex flex-column justify-center align-center position-relative rounded-circle user-select-none transition-transform-200-ease"
|
7
|
+
class="d-flex flex-column justify-center align-center position-relative rounded-circle user-select-none transition-transform-200-ease vcs-compass"
|
8
8
|
elevation="1"
|
9
9
|
:height="height"
|
10
10
|
:width="width"
|
@@ -1,6 +1,8 @@
|
|
1
1
|
<template>
|
2
2
|
<v-sheet>
|
3
|
-
<span
|
3
|
+
<span
|
4
|
+
class="d-flex justify-space-between align-center mt-1 ml-2 search-component"
|
5
|
+
>
|
4
6
|
<v-icon class="pa-1" :size="searchIconSize"> $vcsSearch </v-icon>
|
5
7
|
<VcsTextField
|
6
8
|
class="d-inline-block user-select-none w-100 mx-1"
|
package/src/uiConfig.d.ts
CHANGED
@@ -137,9 +137,13 @@ export type UiConfigObject = {
|
|
137
137
|
*/
|
138
138
|
displayQuality?: import("@vcmap/core").DisplayQualityOptions | undefined;
|
139
139
|
/**
|
140
|
-
* - Vuetify Theming, also see vuetify
|
140
|
+
* - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
|
141
141
|
*/
|
142
142
|
vuetifyTheme?: any;
|
143
|
+
/**
|
144
|
+
* - open the legend window, if new layer has a config
|
145
|
+
*/
|
146
|
+
openLegendOnAdd?: boolean | undefined;
|
143
147
|
};
|
144
148
|
/**
|
145
149
|
* @typedef {{
|
@@ -206,7 +210,8 @@ export type UiConfigObject = {
|
|
206
210
|
* @property {boolean} [hideSettings] - can be used to hide the settings Window
|
207
211
|
* @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
|
208
212
|
* @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
|
209
|
-
* @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify
|
213
|
+
* @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
|
214
|
+
* @property {boolean} [openLegendOnAdd] - open the legend window, if new layer has a config
|
210
215
|
*/
|
211
216
|
/**
|
212
217
|
* @extends {Collection<UiConfigurationItem<unknown>>}
|
@@ -233,7 +238,7 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
233
238
|
*/
|
234
239
|
private _listeners;
|
235
240
|
/**
|
236
|
-
* @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<
|
241
|
+
* @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Record<string, *> & UiConfigObject>>}
|
237
242
|
*/
|
238
243
|
get config(): {
|
239
244
|
readonly [x: string]: any;
|
@@ -472,9 +477,13 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
472
477
|
} | undefined;
|
473
478
|
} | undefined;
|
474
479
|
/**
|
475
|
-
* - Vuetify Theming, also see vuetify
|
480
|
+
* - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
|
476
481
|
*/
|
477
482
|
readonly vuetifyTheme?: any;
|
483
|
+
/**
|
484
|
+
* - open the legend window, if new layer has a config
|
485
|
+
*/
|
486
|
+
readonly openLegendOnAdd?: boolean | undefined;
|
478
487
|
};
|
479
488
|
}
|
480
489
|
import { Collection } from '@vcmap/core';
|
package/src/uiConfig.js
CHANGED
@@ -70,7 +70,8 @@ import { reactive, readonly } from 'vue';
|
|
70
70
|
* @property {boolean} [hideSettings] - can be used to hide the settings Window
|
71
71
|
* @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
|
72
72
|
* @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
|
73
|
-
* @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify
|
73
|
+
* @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
|
74
|
+
* @property {boolean} [openLegendOnAdd] - open the legend window, if new layer has a config
|
74
75
|
*/
|
75
76
|
|
76
77
|
/**
|
@@ -117,7 +118,7 @@ class UiConfig extends Collection {
|
|
117
118
|
}
|
118
119
|
|
119
120
|
/**
|
120
|
-
* @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<
|
121
|
+
* @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Record<string, *> & UiConfigObject>>}
|
121
122
|
*/
|
122
123
|
get config() {
|
123
124
|
return this._readonlyConfig;
|
package/src/vcsUiApp.d.ts
CHANGED
@@ -70,20 +70,21 @@ declare class VcsUiApp extends VcsApp {
|
|
70
70
|
*/
|
71
71
|
themeChanged: VcsEvent<void>;
|
72
72
|
/**
|
73
|
-
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin
|
73
|
+
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>, Object>}
|
74
74
|
* @private
|
75
75
|
*/
|
76
76
|
private _plugins;
|
77
77
|
/**
|
78
|
-
*
|
78
|
+
* I18n Collection adds plugin listener first, so the plugin i18n data is available on plugin initialize
|
79
|
+
* @type {I18nCollection<Object>}
|
79
80
|
* @private
|
80
81
|
*/
|
81
|
-
private
|
82
|
+
private _i18n;
|
82
83
|
/**
|
83
|
-
* @type {
|
84
|
+
* @type {Array<function():void>}
|
84
85
|
* @private
|
85
86
|
*/
|
86
|
-
private
|
87
|
+
private _pluginListeners;
|
87
88
|
/**
|
88
89
|
*
|
89
90
|
* @type {import("vue-i18n").I18n}
|
@@ -195,9 +196,9 @@ declare class VcsUiApp extends VcsApp {
|
|
195
196
|
mounted: import("@vcmap/core").VcsEvent<string>;
|
196
197
|
_destroySiteConfig: () => void;
|
197
198
|
/**
|
198
|
-
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin
|
199
|
+
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>, Object>}
|
199
200
|
*/
|
200
|
-
get plugins(): import("@vcmap/core").OverrideCollection<
|
201
|
+
get plugins(): import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>, Object>;
|
201
202
|
/**
|
202
203
|
* @type {import("@vcmap/core").OverrideCollection<ContentTreeItem, ContentTreeCollection>}
|
203
204
|
*/
|
@@ -250,13 +251,12 @@ declare class VcsUiApp extends VcsApp {
|
|
250
251
|
* @returns {ReturnType<typeof import("vuetify").createVuetify>}
|
251
252
|
*/
|
252
253
|
get vuetify(): {
|
253
|
-
install: (app: import("vue").App<any>) => void;
|
254
|
-
|
255
|
-
display: import("vuetify").DisplayInstance;
|
256
|
-
/**
|
257
|
-
* @type {NavbarManager}
|
254
|
+
install: (app: import("vue").App<any>) => void; /**
|
255
|
+
* @type {WindowManager}
|
258
256
|
* @private
|
259
257
|
*/
|
258
|
+
defaults: import("vue").Ref<import("vuetify").DefaultsInstance>;
|
259
|
+
display: import("vuetify").DisplayInstance;
|
260
260
|
theme: import("vuetify").ThemeInstance & {
|
261
261
|
install: (app: import("vue").App<any>) => void;
|
262
262
|
};
|
@@ -291,13 +291,12 @@ declare class VcsUiApp extends VcsApp {
|
|
291
291
|
date: (value?: any) => unknown;
|
292
292
|
format: (date: unknown, formatString: string) => string;
|
293
293
|
toJsDate: (value: unknown) => Date;
|
294
|
-
|
294
|
+
parseISO: (date: string) => unknown;
|
295
|
+
toISO: (date: unknown) => string;
|
296
|
+
startOfDay: (date: unknown) => unknown; /**
|
295
297
|
* @type {OverviewMap}
|
296
298
|
* @private
|
297
299
|
*/
|
298
|
-
parseISO: (date: string) => unknown;
|
299
|
-
toISO: (date: unknown) => string;
|
300
|
-
startOfDay: (date: unknown) => unknown;
|
301
300
|
endOfDay: (date: unknown) => unknown;
|
302
301
|
startOfWeek: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown;
|
303
302
|
endOfWeek: (date: unknown) => unknown;
|
package/src/vcsUiApp.js
CHANGED
@@ -170,7 +170,7 @@ class VcsUiApp extends VcsApp {
|
|
170
170
|
*/
|
171
171
|
this.themeChanged = new VcsEvent();
|
172
172
|
/**
|
173
|
-
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin
|
173
|
+
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>, Object>}
|
174
174
|
* @private
|
175
175
|
*/
|
176
176
|
this._plugins = makeOverrideCollection(
|
@@ -179,6 +179,17 @@ class VcsUiApp extends VcsApp {
|
|
179
179
|
serializePlugin,
|
180
180
|
deserializePlugin,
|
181
181
|
);
|
182
|
+
|
183
|
+
/**
|
184
|
+
* I18n Collection adds plugin listener first, so the plugin i18n data is available on plugin initialize
|
185
|
+
* @type {I18nCollection<Object>}
|
186
|
+
* @private
|
187
|
+
*/
|
188
|
+
this._i18n = makeOverrideCollection(
|
189
|
+
new I18nCollection(this._plugins),
|
190
|
+
() => this.dynamicModuleId,
|
191
|
+
);
|
192
|
+
|
182
193
|
/**
|
183
194
|
* @type {Array<function():void>}
|
184
195
|
* @private
|
@@ -222,15 +233,6 @@ class VcsUiApp extends VcsApp {
|
|
222
233
|
}),
|
223
234
|
];
|
224
235
|
|
225
|
-
/**
|
226
|
-
* @type {I18nCollection<Object>}
|
227
|
-
* @private
|
228
|
-
*/
|
229
|
-
this._i18n = makeOverrideCollection(
|
230
|
-
new I18nCollection(this._plugins),
|
231
|
-
() => this.dynamicModuleId,
|
232
|
-
);
|
233
|
-
|
234
236
|
/**
|
235
237
|
*
|
236
238
|
* @type {import("vue-i18n").I18n}
|
@@ -375,7 +377,7 @@ class VcsUiApp extends VcsApp {
|
|
375
377
|
}
|
376
378
|
|
377
379
|
/**
|
378
|
-
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin
|
380
|
+
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>, Object>}
|
379
381
|
*/
|
380
382
|
get plugins() {
|
381
383
|
return this._plugins;
|