@vcmap/ui 6.1.0-rc.2 → 6.1.0-rc.3
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/config/base.config.json +6 -0
- package/config/clipping.config.json +384 -0
- package/config/cluster.config.json +106 -0
- package/config/concepts-show-case.config.json +4 -0
- package/config/projects.config.json +5 -2
- package/dist/assets/{cesium-57fbd309.js → cesium-87d5e72d.js} +438 -432
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-fd079400.js → core-72f9f393.js} +4907 -4514
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol-50dfef96.js → ol-e468ba43.js} +23518 -22404
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-73257b15.css +1 -0
- package/dist/assets/{ui-5135917c.js → ui-73257b15.js} +13440 -12742
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-f02b7bb9.css → vuetify-2437380c.css} +2 -2
- package/dist/assets/{vuetify-f02b7bb9.js → vuetify-2437380c.js} +8024 -7634
- package/dist/assets/vuetify.js +1 -1
- package/index.d.ts +38 -19
- package/index.js +35 -6
- package/lib/olLib.js +25 -3
- package/package.json +6 -6
- package/plugins/@vcmap-show-case/callback-tester/README.md +3 -0
- package/plugins/@vcmap-show-case/callback-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/callback-tester/src/CallbackTester.vue +62 -0
- package/plugins/@vcmap-show-case/callback-tester/src/index.js +48 -0
- package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +1 -0
- package/src/actions/actionHelper.d.ts +1 -0
- package/src/actions/actionHelper.js +70 -19
- package/src/application/VcsApp.vue +83 -50
- package/src/application/VcsApp.vue.d.ts +24 -2
- package/src/application/VcsContainer.vue.d.ts +8 -0
- package/src/application/VcsObliqueFooter.vue +9 -3
- package/src/application/VcsSplashScreen.vue +37 -0
- package/src/application/VcsSplashScreen.vue.d.ts +6 -0
- package/src/application/positionDisplayInteraction.js +1 -1
- package/src/callback/activateClippingPolygonCallback.d.ts +29 -0
- package/src/callback/activateClippingPolygonCallback.js +54 -0
- package/src/callback/closeSplashScreenCallback.d.ts +8 -0
- package/src/callback/closeSplashScreenCallback.js +33 -0
- package/src/callback/deactivateClippingPolygonCallback.d.ts +29 -0
- package/src/callback/deactivateClippingPolygonCallback.js +54 -0
- package/src/callback/openSplashScreenCallback.d.ts +8 -0
- package/src/callback/openSplashScreenCallback.js +35 -0
- package/src/callback/toggleNavbarButtonCallback.d.ts +36 -0
- package/src/callback/toggleNavbarButtonCallback.js +62 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +1 -1
- package/src/components/form-inputs-controls/VcsTextArea.vue +12 -7
- package/src/components/form-output/markdownHelper.d.ts +0 -25
- package/src/components/form-output/markdownHelper.js +1 -386
- package/src/components/lists/VcsGroupedList.vue +178 -0
- package/src/components/lists/VcsGroupedList.vue.d.ts +17 -0
- package/src/components/lists/VcsList.vue +142 -396
- package/src/components/lists/VcsList.vue.d.ts +38 -168
- package/src/components/lists/VcsTreeview.vue +11 -12
- package/src/components/lists/listHelper.d.ts +87 -0
- package/src/components/lists/listHelper.js +348 -0
- package/src/components/section/VcsFormSection.vue +7 -2
- package/src/components/section/VcsFormSection.vue.d.ts +9 -0
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +1 -1
- package/src/contentTree/LayerTree.vue +2 -1
- package/src/contentTree/LayerTree.vue.d.ts +2 -0
- package/src/contentTree/contentTreeCollection.d.ts +1 -0
- package/src/contentTree/contentTreeCollection.js +7 -3
- package/src/contentTree/contentTreeItem.js +4 -2
- package/src/contentTree/groupContentTreeItem.js +5 -3
- package/src/featureInfo/ClusterFeatureComponent.vue +58 -0
- package/src/featureInfo/ClusterFeatureComponent.vue.d.ts +6 -0
- package/src/featureInfo/abstractFeatureInfoView.js +1 -2
- package/src/featureInfo/featureInfo.d.ts +87 -1
- package/src/featureInfo/featureInfo.js +342 -34
- package/src/featureInfo/featureInfoInteraction.js +18 -3
- package/src/featureInfo/iframeFeatureInfoView.js +1 -1
- package/src/featureInfo/markdownBalloonFeatureInfoView.js +2 -4
- package/src/featureInfo/markdownFeatureInfoView.js +1 -1
- package/src/i18n/de.d.ts +17 -4
- package/src/i18n/de.js +7 -0
- package/src/i18n/en.d.ts +17 -4
- package/src/i18n/en.js +7 -0
- package/src/legend/legendHelper.d.ts +1 -1
- package/src/legend/legendHelper.js +52 -9
- package/src/localStorage.d.ts +21 -0
- package/src/localStorage.js +51 -0
- package/src/manager/collectionManager/CollectionComponent.vue +1 -1
- package/src/manager/collectionManager/CollectionComponentContent.vue +2 -3
- package/src/manager/collectionManager/CollectionComponentList.vue +2 -3
- package/src/manager/collectionManager/CollectionComponentStandalone.vue +1 -1
- package/src/manager/navbarManager.js +9 -4
- package/src/manager/toolbox/ToolboxManagerComponent.vue +10 -8
- package/src/manager/toolbox/ToolboxManagerComponent.vue.d.ts +11 -0
- package/src/manager/window/windowHelper.d.ts +7 -3
- package/src/manager/window/windowHelper.js +30 -10
- package/src/navigation/overviewMap.d.ts +1 -0
- package/src/navigation/overviewMap.js +4 -3
- package/src/pluginHelper.d.ts +7 -0
- package/src/pluginHelper.js +18 -4
- package/src/search/ResultItem.vue.d.ts +1 -1
- package/src/search/search.js +1 -1
- package/src/state.d.ts +4 -2
- package/src/state.js +54 -31
- package/src/uiConfig.d.ts +27 -0
- package/src/uiConfig.js +16 -1
- package/src/vcsUiApp.js +7 -11
- package/dist/assets/ui-5135917c.css +0 -1
- /package/dist/assets/{vue-c3c55d88.js → vue-ff37ea23.js} +0 -0
@@ -55,7 +55,7 @@ class PositionDisplayInteraction extends AbstractInteraction {
|
|
55
55
|
* @returns {Promise<import("@vcmap/core").InteractionEvent>}
|
56
56
|
*/
|
57
57
|
pipe(event) {
|
58
|
-
if (!event.position.every((pos) => pos === 0)) {
|
58
|
+
if (event.position && !event.position.every((pos) => pos === 0)) {
|
59
59
|
this.position.value = [...event.position];
|
60
60
|
}
|
61
61
|
return Promise.resolve(event);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
export default ActivateClippingPolygonCallback;
|
2
|
+
export type ActivateClippingPolygonOptions = import("./vcsCallback.js").VcsCallbackOptions & {
|
3
|
+
names: string[];
|
4
|
+
};
|
5
|
+
/**
|
6
|
+
* @typedef {import("./vcsCallback.js").VcsCallbackOptions & { names: string[] }} ActivateClippingPolygonOptions
|
7
|
+
* @property {string[]} names - names of the ClippingPolygonObjects to activate
|
8
|
+
*/
|
9
|
+
/**
|
10
|
+
* @class
|
11
|
+
* @extends {VcsCallback}
|
12
|
+
*/
|
13
|
+
declare class ActivateClippingPolygonCallback extends VcsCallback {
|
14
|
+
/**
|
15
|
+
* @param {ActivateClippingPolygonOptions} options
|
16
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
17
|
+
*/
|
18
|
+
constructor(options: ActivateClippingPolygonOptions, app: import("@src/vcsUiApp.js").default);
|
19
|
+
/**
|
20
|
+
* @type {string[]}
|
21
|
+
* @private
|
22
|
+
*/
|
23
|
+
private _names;
|
24
|
+
/**
|
25
|
+
* @returns {ActivateClippingPolygonOptions}
|
26
|
+
*/
|
27
|
+
toJSON(): ActivateClippingPolygonOptions;
|
28
|
+
}
|
29
|
+
import VcsCallback from './vcsCallback.js';
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @typedef {import("./vcsCallback.js").VcsCallbackOptions & { names: string[] }} ActivateClippingPolygonOptions
|
5
|
+
* @property {string[]} names - names of the ClippingPolygonObjects to activate
|
6
|
+
*/
|
7
|
+
|
8
|
+
/**
|
9
|
+
* @class
|
10
|
+
* @extends {VcsCallback}
|
11
|
+
*/
|
12
|
+
class ActivateClippingPolygonCallback extends VcsCallback {
|
13
|
+
/**
|
14
|
+
* @type {string}
|
15
|
+
*/
|
16
|
+
static get className() {
|
17
|
+
return 'ActivateClippingPolygonCallback';
|
18
|
+
}
|
19
|
+
|
20
|
+
/**
|
21
|
+
* @param {ActivateClippingPolygonOptions} options
|
22
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
23
|
+
*/
|
24
|
+
constructor(options, app) {
|
25
|
+
super(options, app);
|
26
|
+
/**
|
27
|
+
* @type {string[]}
|
28
|
+
* @private
|
29
|
+
*/
|
30
|
+
this._names = options.names;
|
31
|
+
}
|
32
|
+
|
33
|
+
callback() {
|
34
|
+
this._names
|
35
|
+
.map((n) => this._app.clippingPolygons.getByKey(n))
|
36
|
+
.filter((l) => l)
|
37
|
+
.forEach((l) => l.activate());
|
38
|
+
}
|
39
|
+
|
40
|
+
/**
|
41
|
+
* @returns {ActivateClippingPolygonOptions}
|
42
|
+
*/
|
43
|
+
toJSON() {
|
44
|
+
const config = super.toJSON();
|
45
|
+
config.names = this._names.slice();
|
46
|
+
return config;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
export default ActivateClippingPolygonCallback;
|
51
|
+
callbackClassRegistry.registerClass(
|
52
|
+
ActivateClippingPolygonCallback.className,
|
53
|
+
ActivateClippingPolygonCallback,
|
54
|
+
);
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @class
|
5
|
+
* @extends {VcsCallback}
|
6
|
+
*/
|
7
|
+
class CloseSplashScreenCallback extends VcsCallback {
|
8
|
+
/**
|
9
|
+
* @type {string}
|
10
|
+
*/
|
11
|
+
static get className() {
|
12
|
+
return 'CloseSplashScreenCallback';
|
13
|
+
}
|
14
|
+
|
15
|
+
callback() {
|
16
|
+
this._app.uiConfig.showSplashScreen = false;
|
17
|
+
}
|
18
|
+
|
19
|
+
/**
|
20
|
+
* @returns {import('./vcsCallback.js').VcsCallbackOptions}
|
21
|
+
*/
|
22
|
+
toJSON() {
|
23
|
+
return super.toJSON();
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
export default CloseSplashScreenCallback;
|
28
|
+
|
29
|
+
// Register the class
|
30
|
+
callbackClassRegistry.registerClass(
|
31
|
+
CloseSplashScreenCallback.className,
|
32
|
+
CloseSplashScreenCallback,
|
33
|
+
);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
export default DeactivateClippingPolygonCallback;
|
2
|
+
export type DeactivateClippingPolygonOptions = import("./vcsCallback.js").VcsCallbackOptions & {
|
3
|
+
names: string[];
|
4
|
+
};
|
5
|
+
/**
|
6
|
+
* @typedef {import("./vcsCallback.js").VcsCallbackOptions & { names: string[] }} DeactivateClippingPolygonOptions
|
7
|
+
* @property {string[]} names - names of the ClippingPolygonObjects to deactivate
|
8
|
+
*/
|
9
|
+
/**
|
10
|
+
* @class
|
11
|
+
* @extends {VcsCallback}
|
12
|
+
*/
|
13
|
+
declare class DeactivateClippingPolygonCallback extends VcsCallback {
|
14
|
+
/**
|
15
|
+
* @param {DeactivateClippingPolygonOptions} options
|
16
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
17
|
+
*/
|
18
|
+
constructor(options: DeactivateClippingPolygonOptions, app: import("@src/vcsUiApp.js").default);
|
19
|
+
/**
|
20
|
+
* @type {string[]}
|
21
|
+
* @private
|
22
|
+
*/
|
23
|
+
private _names;
|
24
|
+
/**
|
25
|
+
* @returns {DeactivateClippingPolygonOptions}
|
26
|
+
*/
|
27
|
+
toJSON(): DeactivateClippingPolygonOptions;
|
28
|
+
}
|
29
|
+
import VcsCallback from './vcsCallback.js';
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @typedef {import("./vcsCallback.js").VcsCallbackOptions & { names: string[] }} DeactivateClippingPolygonOptions
|
5
|
+
* @property {string[]} names - names of the ClippingPolygonObjects to deactivate
|
6
|
+
*/
|
7
|
+
|
8
|
+
/**
|
9
|
+
* @class
|
10
|
+
* @extends {VcsCallback}
|
11
|
+
*/
|
12
|
+
class DeactivateClippingPolygonCallback extends VcsCallback {
|
13
|
+
/**
|
14
|
+
* @type {string}
|
15
|
+
*/
|
16
|
+
static get className() {
|
17
|
+
return 'DeactivateClippingPolygonCallback';
|
18
|
+
}
|
19
|
+
|
20
|
+
/**
|
21
|
+
* @param {DeactivateClippingPolygonOptions} options
|
22
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
23
|
+
*/
|
24
|
+
constructor(options, app) {
|
25
|
+
super(options, app);
|
26
|
+
/**
|
27
|
+
* @type {string[]}
|
28
|
+
* @private
|
29
|
+
*/
|
30
|
+
this._names = options.names;
|
31
|
+
}
|
32
|
+
|
33
|
+
callback() {
|
34
|
+
this._names
|
35
|
+
.map((n) => this._app.clippingPolygons.getByKey(n))
|
36
|
+
.filter((l) => l)
|
37
|
+
.forEach((l) => l.deactivate());
|
38
|
+
}
|
39
|
+
|
40
|
+
/**
|
41
|
+
* @returns {DeactivateClippingPolygonOptions}
|
42
|
+
*/
|
43
|
+
toJSON() {
|
44
|
+
const config = super.toJSON();
|
45
|
+
config.names = this._names.slice();
|
46
|
+
return config;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
export default DeactivateClippingPolygonCallback;
|
51
|
+
callbackClassRegistry.registerClass(
|
52
|
+
DeactivateClippingPolygonCallback.className,
|
53
|
+
DeactivateClippingPolygonCallback,
|
54
|
+
);
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @class
|
5
|
+
* @extends {VcsCallback}
|
6
|
+
*/
|
7
|
+
class OpenSplashScreenCallback extends VcsCallback {
|
8
|
+
/**
|
9
|
+
* @type {string}
|
10
|
+
*/
|
11
|
+
static get className() {
|
12
|
+
return 'OpenSplashScreenCallback';
|
13
|
+
}
|
14
|
+
|
15
|
+
callback() {
|
16
|
+
if (this._app.uiConfig.getByKey('splashScreen')) {
|
17
|
+
this._app.uiConfig.showSplashScreen = true;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @returns {import('./vcsCallback.js').VcsCallbackOptions}
|
23
|
+
*/
|
24
|
+
toJSON() {
|
25
|
+
return super.toJSON();
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
export default OpenSplashScreenCallback;
|
30
|
+
|
31
|
+
// Register the class
|
32
|
+
callbackClassRegistry.registerClass(
|
33
|
+
OpenSplashScreenCallback.className,
|
34
|
+
OpenSplashScreenCallback,
|
35
|
+
);
|
@@ -0,0 +1,36 @@
|
|
1
|
+
export default ToggleNavbarButtonCallback;
|
2
|
+
export type ToggleNavbarButtonOptions = import("./vcsCallback.js").VcsCallbackOptions & {
|
3
|
+
buttonId: string;
|
4
|
+
activeState?: boolean;
|
5
|
+
};
|
6
|
+
/**
|
7
|
+
* @typedef {import("./vcsCallback.js").VcsCallbackOptions & { buttonId: string, activeState?:boolean }} ToggleNavbarButtonOptions
|
8
|
+
* @property {string} buttonId - id of the Navbar button
|
9
|
+
* @property {boolean} [activeState] - state to be applied to the button
|
10
|
+
*/
|
11
|
+
/**
|
12
|
+
* @class
|
13
|
+
* @extends {VcsCallback}
|
14
|
+
*/
|
15
|
+
declare class ToggleNavbarButtonCallback extends VcsCallback {
|
16
|
+
/**
|
17
|
+
* @param {ToggleNavbarButtonOptions} options
|
18
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
19
|
+
*/
|
20
|
+
constructor(options: ToggleNavbarButtonOptions, app: import("@src/vcsUiApp.js").default);
|
21
|
+
/**
|
22
|
+
* @type {string}
|
23
|
+
* @private
|
24
|
+
*/
|
25
|
+
private _buttonId;
|
26
|
+
/**
|
27
|
+
* @type {boolean|undefined}
|
28
|
+
* @private
|
29
|
+
*/
|
30
|
+
private _activeState;
|
31
|
+
/**
|
32
|
+
* @returns {ToggleNavbarButtonOptions}
|
33
|
+
*/
|
34
|
+
toJSON(): ToggleNavbarButtonOptions;
|
35
|
+
}
|
36
|
+
import VcsCallback from './vcsCallback.js';
|
@@ -0,0 +1,62 @@
|
|
1
|
+
import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @typedef {import("./vcsCallback.js").VcsCallbackOptions & { buttonId: string, activeState?:boolean }} ToggleNavbarButtonOptions
|
5
|
+
* @property {string} buttonId - id of the Navbar button
|
6
|
+
* @property {boolean} [activeState] - state to be applied to the button
|
7
|
+
*/
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @class
|
11
|
+
* @extends {VcsCallback}
|
12
|
+
*/
|
13
|
+
class ToggleNavbarButtonCallback extends VcsCallback {
|
14
|
+
/**
|
15
|
+
* @type {string}
|
16
|
+
*/
|
17
|
+
static get className() {
|
18
|
+
return 'ToggleNavbarButtonCallback';
|
19
|
+
}
|
20
|
+
|
21
|
+
/**
|
22
|
+
* @param {ToggleNavbarButtonOptions} options
|
23
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
24
|
+
*/
|
25
|
+
constructor(options, app) {
|
26
|
+
super(options, app);
|
27
|
+
/**
|
28
|
+
* @type {string}
|
29
|
+
* @private
|
30
|
+
*/
|
31
|
+
this._buttonId = options.buttonId;
|
32
|
+
/**
|
33
|
+
* @type {boolean|undefined}
|
34
|
+
* @private
|
35
|
+
*/
|
36
|
+
this._activeState = options.activeState;
|
37
|
+
}
|
38
|
+
|
39
|
+
callback() {
|
40
|
+
this._app.navbarManager.toggle(this._buttonId, this._activeState);
|
41
|
+
}
|
42
|
+
|
43
|
+
/**
|
44
|
+
* @returns {ToggleNavbarButtonOptions}
|
45
|
+
*/
|
46
|
+
toJSON() {
|
47
|
+
const config = super.toJSON();
|
48
|
+
config.buttonId = this._buttonId;
|
49
|
+
if (this._activeState) {
|
50
|
+
config.activeState = this._activeState;
|
51
|
+
}
|
52
|
+
return config;
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
export default ToggleNavbarButtonCallback;
|
57
|
+
|
58
|
+
// Register the class
|
59
|
+
callbackClassRegistry.registerClass(
|
60
|
+
ToggleNavbarButtonCallback.className,
|
61
|
+
ToggleNavbarButtonCallback,
|
62
|
+
);
|
@@ -72,24 +72,27 @@
|
|
72
72
|
border-color: rgb(var(--v-theme-primary));
|
73
73
|
}
|
74
74
|
|
75
|
-
:deep(.v-field--focused .v-field__outline__end) {
|
76
|
-
border-width: 1px 1px 1px 0 !important;
|
77
|
-
}
|
78
75
|
:deep(.v-field--focused .v-field__outline__start) {
|
79
76
|
border-width: 1px 0 1px 1px !important;
|
80
77
|
}
|
78
|
+
:deep(.v-field--focused .v-field__outline__notch)::after {
|
79
|
+
border-width: 0 0 1px 0 !important;
|
80
|
+
}
|
81
|
+
:deep(.v-field--focused .v-field__outline__end) {
|
82
|
+
border-width: 1px 1px 1px 0 !important;
|
83
|
+
}
|
81
84
|
|
82
85
|
// remove outline, if not focused, hovered or an error
|
83
86
|
:deep(.v-field:not(.v-field--focused):not(.v-field--error):not(:hover)) {
|
84
87
|
.v-field__outline * {
|
85
|
-
border-width: 0 0 0
|
88
|
+
border-width: 0 0 1px 0 !important;
|
86
89
|
border-radius: 0;
|
87
90
|
}
|
91
|
+
.v-field__outline__start {
|
92
|
+
margin-left: 4px;
|
93
|
+
}
|
88
94
|
.v-field__outline__end {
|
89
|
-
border-width: 0 0 1px 0 !important;
|
90
|
-
border-radius: 0;
|
91
95
|
margin-right: 4px;
|
92
|
-
margin-left: -8px;
|
93
96
|
}
|
94
97
|
.v-field__loader {
|
95
98
|
padding-left: 3px;
|
@@ -102,6 +105,8 @@
|
|
102
105
|
.v-field__outline * label {
|
103
106
|
color: rgb(var(--v-theme-primary));
|
104
107
|
margin-left: -4px;
|
108
|
+
border-width: 0 0 0 0;
|
109
|
+
border-radius: 0;
|
105
110
|
}
|
106
111
|
}
|
107
112
|
:deep(.v-field .v-field--focused .v-field--error):hover {
|
@@ -1,30 +1,5 @@
|
|
1
|
-
/**
|
2
|
-
* @typedef {Object} Block
|
3
|
-
* @property {RegExpExecArray} opening
|
4
|
-
* @property {RegExpExecArray} closing
|
5
|
-
*/
|
6
|
-
/**
|
7
|
-
* @typedef {Block} ConditionalBlock
|
8
|
-
* @property {RegExpExecArray|undefined} elseStatement
|
9
|
-
* @property {RegExpExecArray[]} elseIfs
|
10
|
-
*/
|
11
1
|
/**
|
12
2
|
* @param {string} content
|
13
3
|
* @returns {string}
|
14
4
|
*/
|
15
5
|
export function parseAndSanitizeMarkdown(content: string): string;
|
16
|
-
/**
|
17
|
-
* Renders a template in these steps
|
18
|
-
* 1. expand conditional blocks. this will remove any blocks that do not match their expressions and choose from if / elseif / else block which of them to render
|
19
|
-
* 2. expand iterations. this will create new templates for each iteration and re-run the rendering for those blocks
|
20
|
-
* 3. render attributes. this will add the attributes to all the blocks not within each blocks
|
21
|
-
* @param {string|string[]} template
|
22
|
-
* @param {Record<string, unknown>} data
|
23
|
-
* @returns {string}
|
24
|
-
*/
|
25
|
-
export function renderTemplate(template: string | string[], data: Record<string, unknown>): string;
|
26
|
-
export type Block = {
|
27
|
-
opening: RegExpExecArray;
|
28
|
-
closing: RegExpExecArray;
|
29
|
-
};
|
30
|
-
export type ConditionalBlock = Block;
|