@progress/kendo-vue-layout 3.1.1 → 3.1.2-dev.202203221454

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.
Files changed (52) hide show
  1. package/dist/cdn/js/kendo-vue-layout.js +1 -1
  2. package/dist/es/package-metadata.js +1 -1
  3. package/dist/es/panelbar/PanelBar.d.ts +40 -0
  4. package/dist/es/panelbar/PanelBar.js +329 -0
  5. package/dist/es/panelbar/PanelBarItem.d.ts +35 -0
  6. package/dist/es/panelbar/PanelBarItem.js +219 -0
  7. package/dist/es/panelbar/interfaces/NavigationAction.d.ts +8 -0
  8. package/dist/es/panelbar/interfaces/NavigationAction.js +9 -0
  9. package/dist/es/panelbar/interfaces/PanelBarItemClickEventArguments.d.ts +7 -0
  10. package/dist/es/panelbar/interfaces/PanelBarItemClickEventArguments.js +0 -0
  11. package/dist/es/panelbar/interfaces/PanelBarItemProps.d.ts +85 -0
  12. package/dist/es/panelbar/interfaces/PanelBarItemProps.js +0 -0
  13. package/dist/es/panelbar/interfaces/PanelBarProps.d.ts +54 -0
  14. package/dist/es/panelbar/interfaces/PanelBarProps.js +0 -0
  15. package/dist/es/panelbar/interfaces/PanelBarSelectEventArguments.d.ts +13 -0
  16. package/dist/es/panelbar/interfaces/PanelBarSelectEventArguments.js +0 -0
  17. package/dist/es/panelbar/interfaces/RenderPanelBarItem.d.ts +14 -0
  18. package/dist/es/panelbar/interfaces/RenderPanelBarItem.js +0 -0
  19. package/dist/es/panelbar/util.d.ts +49 -0
  20. package/dist/es/panelbar/util.js +246 -0
  21. package/dist/es/splitter/Splitter.d.ts +86 -0
  22. package/dist/es/splitter/Splitter.js +439 -0
  23. package/dist/es/splitter/SplitterBar.d.ts +50 -0
  24. package/dist/es/splitter/SplitterBar.js +231 -0
  25. package/dist/es/splitter/SplitterPane.d.ts +109 -0
  26. package/dist/es/splitter/SplitterPane.js +65 -0
  27. package/dist/npm/package-metadata.js +1 -1
  28. package/dist/npm/panelbar/PanelBar.d.ts +40 -0
  29. package/dist/npm/panelbar/PanelBar.js +343 -0
  30. package/dist/npm/panelbar/PanelBarItem.d.ts +35 -0
  31. package/dist/npm/panelbar/PanelBarItem.js +230 -0
  32. package/dist/npm/panelbar/interfaces/NavigationAction.d.ts +8 -0
  33. package/dist/npm/panelbar/interfaces/NavigationAction.js +12 -0
  34. package/dist/npm/panelbar/interfaces/PanelBarItemClickEventArguments.d.ts +7 -0
  35. package/dist/npm/panelbar/interfaces/PanelBarItemClickEventArguments.js +2 -0
  36. package/dist/npm/panelbar/interfaces/PanelBarItemProps.d.ts +85 -0
  37. package/dist/npm/panelbar/interfaces/PanelBarItemProps.js +2 -0
  38. package/dist/npm/panelbar/interfaces/PanelBarProps.d.ts +54 -0
  39. package/dist/npm/panelbar/interfaces/PanelBarProps.js +2 -0
  40. package/dist/npm/panelbar/interfaces/PanelBarSelectEventArguments.d.ts +13 -0
  41. package/dist/npm/panelbar/interfaces/PanelBarSelectEventArguments.js +2 -0
  42. package/dist/npm/panelbar/interfaces/RenderPanelBarItem.d.ts +14 -0
  43. package/dist/npm/panelbar/interfaces/RenderPanelBarItem.js +2 -0
  44. package/dist/npm/panelbar/util.d.ts +49 -0
  45. package/dist/npm/panelbar/util.js +264 -0
  46. package/dist/npm/splitter/Splitter.d.ts +86 -0
  47. package/dist/npm/splitter/Splitter.js +453 -0
  48. package/dist/npm/splitter/SplitterBar.d.ts +50 -0
  49. package/dist/npm/splitter/SplitterBar.js +241 -0
  50. package/dist/npm/splitter/SplitterPane.d.ts +109 -0
  51. package/dist/npm/splitter/SplitterPane.js +75 -0
  52. package/package.json +10 -10
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SplitterBarVue2 = exports.SplitterBar = void 0; // @ts-ignore
7
+
8
+ var Vue = require("vue");
9
+
10
+ var allVue = Vue;
11
+ var gh = allVue.h;
12
+
13
+ var kendo_vue_common_1 = require("@progress/kendo-vue-common"); // tslint:enable:max-line-length
14
+
15
+
16
+ var SplitterBarVue2 = {
17
+ name: 'KendoSplitterBar',
18
+ props: {
19
+ orientation: {
20
+ type: String,
21
+ default: 'vertical',
22
+ validator: function validator(value) {
23
+ return ['vertical', 'horizontal'].includes(value);
24
+ }
25
+ },
26
+ index: Number,
27
+ prev: Object,
28
+ next: Object
29
+ },
30
+ created: function created() {
31
+ this.draggable = null;
32
+ this.state = {
33
+ focused: false
34
+ };
35
+ },
36
+ computed: {
37
+ isStatic: function isStatic() {
38
+ var _a = this.props,
39
+ prev = _a.prev,
40
+ next = _a.next;
41
+ var betweenResizablePanes = prev.resizable && next.resizable;
42
+ var nearCollapsiblePane = prev.collapsible || next.collapsible;
43
+ return !betweenResizablePanes && !nearCollapsiblePane;
44
+ },
45
+ isDraggable: function isDraggable() {
46
+ var _a = this.props,
47
+ prev = _a.prev,
48
+ next = _a.next;
49
+ var betweenResizablePanes = prev.resizable && next.resizable;
50
+ var nearCollapsedPane = prev.collapsed || next.collapsed;
51
+ return !!betweenResizablePanes && !nearCollapsedPane;
52
+ },
53
+ isHorizontal: function isHorizontal() {
54
+ return this.props.orientation === 'horizontal';
55
+ }
56
+ },
57
+ data: function data() {
58
+ return {
59
+ focused: false
60
+ };
61
+ },
62
+ // @ts-ignore
63
+ setup: !gh ? undefined : function () {
64
+ var v3 = !!gh;
65
+ return {
66
+ v3: v3
67
+ };
68
+ },
69
+ // @ts-ignore
70
+ render: function render(createElement) {
71
+ var _a;
72
+
73
+ var _this = this;
74
+
75
+ var h = gh || createElement;
76
+ var isDraggable = this.isDraggable;
77
+ var isStatic = this.isStatic;
78
+ var isHorizontal = this.isHorizontal;
79
+ var barClasses = kendo_vue_common_1.classNames('k-splitbar', (_a = {}, _a['k-state-focused'] = this.state.focused, _a['k-splitbar-horizontal'] = isHorizontal, _a['k-splitbar-vertical'] = !isHorizontal, _a['k-splitbar-draggable-horizontal'] = isHorizontal && isDraggable, _a['k-splitbar-draggable-vertical'] = !isHorizontal && isDraggable, _a['k-splitbar-static-horizontal'] = isHorizontal && isStatic, _a['k-splitbar-static-vertical'] = !isHorizontal && isStatic, _a));
80
+ var previousArrowClass = this.previousArrowClass(isHorizontal);
81
+ var nextArrowClass = this.nextArrowClass(isHorizontal);
82
+ return h(kendo_vue_common_1.Draggable, {
83
+ onPress: function onPress(event) {
84
+ return _this.onDrag(event, true, false);
85
+ },
86
+ on: this.v3 ? undefined : {
87
+ "press": function onPress(event) {
88
+ return _this.onDrag(event, true, false);
89
+ },
90
+ "drag": function drag(event) {
91
+ return _this.onDrag(event, false, false);
92
+ },
93
+ "release": function release(event) {
94
+ return _this.onDrag(event, false, true);
95
+ }
96
+ },
97
+ onDrag: function drag(event) {
98
+ return _this.onDrag(event, false, false);
99
+ },
100
+ onRelease: function release(event) {
101
+ return _this.onDrag(event, false, true);
102
+ }
103
+ }, [h("div", {
104
+ tabIndex: isStatic ? -1 : 0,
105
+ attrs: this.v3 ? undefined : {
106
+ tabIndex: isStatic ? -1 : 0,
107
+ role: 'separator'
108
+ },
109
+ role: 'separator',
110
+ "class": barClasses,
111
+ style: {
112
+ touchAction: 'none'
113
+ },
114
+ onFocus: this.onFocus,
115
+ on: this.v3 ? undefined : {
116
+ "focus": this.onFocus,
117
+ "blur": this.onBlur,
118
+ "dblclick": this.onToggle,
119
+ "keydown": this.onKeyDown
120
+ },
121
+ onBlur: this.onBlur,
122
+ onDblclick: this.onToggle,
123
+ onKeydown: this.onKeyDown
124
+ }, [h("div", {
125
+ "class": previousArrowClass,
126
+ onClick: this.onPrevToggle,
127
+ on: this.v3 ? undefined : {
128
+ "click": this.onPrevToggle
129
+ }
130
+ }), h("div", {
131
+ "class": 'k-resize-handle'
132
+ }), h("div", {
133
+ "class": nextArrowClass,
134
+ onClick: this.onNextToggle,
135
+ on: this.v3 ? undefined : {
136
+ "click": this.onNextToggle
137
+ }
138
+ })])]);
139
+ },
140
+ methods: {
141
+ onDrag: function onDrag(data, isFirst, isLast) {
142
+ var event = data.event;
143
+ var index = this.props.index;
144
+ var element = this.$el; // this.draggable && this.draggable.element;
145
+
146
+ if (!isLast && event) {
147
+ event.originalEvent.preventDefault();
148
+ }
149
+
150
+ if (element && !this.isStatic && this.isDraggable) {
151
+ this.$emit('drag', event, element, index, isFirst, isLast);
152
+ }
153
+ },
154
+ onFocus: function onFocus() {
155
+ this.focused = true;
156
+ },
157
+ onBlur: function onBlur() {
158
+ this.focused = false;
159
+ },
160
+ onToggle: function onToggle(event) {
161
+ var _a = this.props,
162
+ index = _a.index,
163
+ prev = _a.prev,
164
+ next = _a.next;
165
+
166
+ if (prev.collapsible || next.collapsible) {
167
+ this.$emit('toggle', prev.collapsible ? index : index + 1, event);
168
+ }
169
+ },
170
+ onPrevToggle: function onPrevToggle(event) {
171
+ var _a = this.props,
172
+ index = _a.index,
173
+ prev = _a.prev;
174
+
175
+ if (prev.collapsible) {
176
+ this.$emit('toggle', index, event);
177
+ }
178
+ },
179
+ onNextToggle: function onNextToggle(event) {
180
+ var _a = this.props,
181
+ index = _a.index,
182
+ next = _a.next;
183
+
184
+ if (next.collapsible) {
185
+ this.$emit('toggle', index + 1, event);
186
+ }
187
+ },
188
+ onKeyDown: function onKeyDown(event) {
189
+ var _this = this;
190
+
191
+ var keyCode = event && event.keyCode;
192
+ var isHorizontal = this.isHorizontal;
193
+ var index = this.props.index;
194
+ var element = this.$el; // this.draggable && this.draggable.element;
195
+
196
+ var onKeyboardResize = function onKeyboardResize(el, idx, offset) {
197
+ event.preventDefault();
198
+
199
+ _this.$emit('keyboardresize', el, idx, offset, event);
200
+ };
201
+
202
+ if (!element) {
203
+ return;
204
+ }
205
+
206
+ if (keyCode === kendo_vue_common_1.Keys.enter) {
207
+ event.preventDefault();
208
+ this.onToggle(event);
209
+ } else if (this.isDraggable) {
210
+ if (isHorizontal && keyCode === kendo_vue_common_1.Keys.left) {
211
+ onKeyboardResize(element, index, -10);
212
+ } else if (isHorizontal && keyCode === kendo_vue_common_1.Keys.right) {
213
+ onKeyboardResize(element, index, 10);
214
+ } else if (!isHorizontal && keyCode === kendo_vue_common_1.Keys.up) {
215
+ onKeyboardResize(element, index, -10);
216
+ } else if (!isHorizontal && keyCode === kendo_vue_common_1.Keys.down) {
217
+ onKeyboardResize(element, index, 10);
218
+ }
219
+ }
220
+ },
221
+ previousArrowClass: function previousArrowClass(isHorizontal) {
222
+ var _a;
223
+
224
+ var prev = this.props.prev;
225
+ var isCollapsible = prev.collapsible;
226
+ var isCollapsed = prev.collapsed;
227
+ return kendo_vue_common_1.classNames('k-icon', (_a = {}, _a['k-hidden'] = !isCollapsible, _a['k-collapse-prev'] = isCollapsible, _a['k-i-arrow-60-left'] = isCollapsible && isHorizontal && !isCollapsed, _a['k-i-arrow-60-right'] = isCollapsible && isHorizontal && isCollapsed, _a['k-i-arrow-60-up'] = isCollapsible && !isHorizontal && !isCollapsed, _a['k-i-arrow-60-down'] = isCollapsible && !isHorizontal && isCollapsed, _a));
228
+ },
229
+ nextArrowClass: function nextArrowClass(isHorizontal) {
230
+ var _a;
231
+
232
+ var next = this.props.next;
233
+ var isCollapsible = next.collapsible;
234
+ var isCollapsed = next.collapsed;
235
+ return kendo_vue_common_1.classNames('k-icon', (_a = {}, _a['k-hidden'] = !isCollapsible, _a['k-collapse-next'] = isCollapsible, _a['k-i-arrow-60-right'] = isCollapsible && isHorizontal && !isCollapsed, _a['k-i-arrow-60-left'] = isCollapsible && isHorizontal && isCollapsed, _a['k-i-arrow-60-down'] = isCollapsible && !isHorizontal && !isCollapsed, _a['k-i-arrow-60-up'] = isCollapsible && !isHorizontal && isCollapsed, _a));
236
+ }
237
+ }
238
+ };
239
+ exports.SplitterBarVue2 = SplitterBarVue2;
240
+ var SplitterBar = SplitterBarVue2;
241
+ exports.SplitterBar = SplitterBar;
@@ -0,0 +1,109 @@
1
+ import { DefineComponent, RecordPropsDefinition, ComponentOptions, Vue2type } from '../additionalTypes';
2
+ declare type DefaultData<V> = object | ((this: V) => {});
3
+ declare type DefaultMethods<V> = {
4
+ [key: string]: (this: V, ...args: any[]) => any;
5
+ };
6
+ /**
7
+ * Represents the pane options of the Splitter.
8
+ */
9
+ export interface SplitterPaneProps {
10
+ /**
11
+ * Sets the size of the pane ([see example]({% slug panes_splitter %}#toc-dimensions)). Has to be between the `min` and `max` properties.
12
+ */
13
+ size?: string;
14
+ /**
15
+ * Sets the minimum possible size of the pane ([see example]({% slug panes_splitter %}#toc-dimensions)).
16
+ */
17
+ min?: string;
18
+ /**
19
+ * Sets the maximum possible size of the pane ([see example]({% slug panes_splitter %}#toc-dimensions)).
20
+ */
21
+ max?: string;
22
+ /**
23
+ * Specifies if the user is allowed to resize the pane and provide space for other panes ([see example]({% slug panes_splitter %}#toc-resizing)). If `resizable` is not specified, the resizing of the pane will be enabled.
24
+ */
25
+ resizable?: boolean;
26
+ /**
27
+ * Specifies if the user is allowed to hide the pane and provide space for other panes ([see example]({% slug panes_splitter %}#toc-collapsing)).
28
+ */
29
+ collapsible?: boolean;
30
+ /**
31
+ * Specifies the pane collapsed state ([see example]({% slug panes_splitter %}#toc-collapsing)).
32
+ */
33
+ collapsed?: boolean;
34
+ /**
35
+ * Specifies if overflowing content is scrollable or hidden ([see example]({% slug panes_splitter %}#toc-scrolling)). If `scrollable` is not specified, the content will be scrollable.
36
+ */
37
+ scrollable?: boolean;
38
+ /**
39
+ * Specifies if the children of the pane should be mounted when it's in collapsed state.
40
+ */
41
+ keepMounted?: boolean;
42
+ }
43
+ /**
44
+ * @hidden
45
+ */
46
+ export interface SplitterPaneExtendedProps extends SplitterPaneProps {
47
+ orientation: 'vertical' | 'horizontal' | string;
48
+ overlay: boolean;
49
+ containsSplitter: boolean;
50
+ size?: string;
51
+ /**
52
+ * Sets the minimum possible size of the pane ([see example]({% slug panes_splitter %}#toc-dimensions)).
53
+ */
54
+ min?: string;
55
+ /**
56
+ * Sets the maximum possible size of the pane ([see example]({% slug panes_splitter %}#toc-dimensions)).
57
+ */
58
+ max?: string;
59
+ /**
60
+ * Specifies if the user is allowed to resize the pane and provide space for other panes ([see example]({% slug panes_splitter %}#toc-resizing)). If `resizable` is not specified, the resizing of the pane will be enabled.
61
+ */
62
+ resizable?: boolean;
63
+ /**
64
+ * Specifies if the user is allowed to hide the pane and provide space for other panes ([see example]({% slug panes_splitter %}#toc-collapsing)).
65
+ */
66
+ collapsible?: boolean;
67
+ /**
68
+ * Specifies the pane collapsed state ([see example]({% slug panes_splitter %}#toc-collapsing)).
69
+ */
70
+ collapsed?: boolean;
71
+ /**
72
+ * Specifies if overflowing content is scrollable or hidden ([see example]({% slug panes_splitter %}#toc-scrolling)). If `scrollable` is not specified, the content will be scrollable.
73
+ */
74
+ scrollable?: boolean;
75
+ /**
76
+ * Specifies if the children of the pane should be mounted when it's in collapsed state.
77
+ */
78
+ keepMounted?: boolean;
79
+ }
80
+ /**
81
+ * @hidden
82
+ */
83
+ export interface SplitterPaneState {
84
+ }
85
+ /**
86
+ * @hidden
87
+ */
88
+ export interface SplitterPaneComputed {
89
+ [key: string]: any;
90
+ }
91
+ /**
92
+ * @hidden
93
+ */
94
+ export interface SplitterPaneMethods {
95
+ [key: string]: any;
96
+ }
97
+ /**
98
+ * @hidden
99
+ */
100
+ export interface SplitterPaneData {
101
+ }
102
+ /**
103
+ * @hidden
104
+ */
105
+ export interface SplitterPaneAll extends Vue2type, SplitterPaneMethods, SplitterPaneData, SplitterPaneComputed, SplitterPaneState {
106
+ }
107
+ declare let SplitterPaneVue2: ComponentOptions<SplitterPaneAll, DefaultData<SplitterPaneData>, DefaultMethods<SplitterPaneAll>, SplitterPaneComputed, RecordPropsDefinition<SplitterPaneExtendedProps>>;
108
+ declare const SplitterPane: DefineComponent<SplitterPaneProps, any, SplitterPaneData, SplitterPaneComputed, SplitterPaneMethods, {}, {}, {}, string, SplitterPaneProps, SplitterPaneProps, {}>;
109
+ export { SplitterPane, SplitterPaneVue2 };
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SplitterPaneVue2 = exports.SplitterPane = void 0; // @ts-ignore
7
+
8
+ var Vue = require("vue");
9
+
10
+ var allVue = Vue;
11
+ var gh = allVue.h;
12
+
13
+ var kendo_vue_common_1 = require("@progress/kendo-vue-common"); // tslint:enable:max-line-length
14
+
15
+
16
+ var SplitterPaneVue2 = {
17
+ name: 'KendoSplitterPane',
18
+ props: {
19
+ orientation: {
20
+ type: String,
21
+ default: function _default() {
22
+ return undefined;
23
+ },
24
+ validator: function validator(value) {
25
+ return ['vertical', 'horizontal'].includes(value);
26
+ }
27
+ },
28
+ overlay: Boolean,
29
+ containsSplitter: Boolean,
30
+ size: String,
31
+ min: String,
32
+ max: String,
33
+ resizable: Boolean,
34
+ collapsible: Boolean,
35
+ collapsed: Boolean,
36
+ scrollable: Boolean,
37
+ keepMounted: Boolean
38
+ },
39
+ // @ts-ignore
40
+ setup: !gh ? undefined : function () {
41
+ var v3 = !!gh;
42
+ return {
43
+ v3: v3
44
+ };
45
+ },
46
+ // @ts-ignore
47
+ render: function render(createElement) {
48
+ var _a;
49
+
50
+ var h = gh || createElement;
51
+ var _b = this.props,
52
+ size = _b.size,
53
+ collapsed = _b.collapsed,
54
+ overlay = _b.overlay,
55
+ containsSplitter = _b.containsSplitter,
56
+ collapsible = _b.collapsible,
57
+ resizable = _b.resizable,
58
+ scrollable = _b.scrollable,
59
+ keepMounted = _b.keepMounted;
60
+ var fixedSize = size && size.length > 0;
61
+ var style = {
62
+ flexBasis: size
63
+ };
64
+ var paneClasses = kendo_vue_common_1.classNames('k-pane', (_a = {}, _a['k-state-hidden'] = collapsed, _a['hidden'] = collapsed, _a['k-pane-flex'] = containsSplitter, _a['k-pane-static'] = !resizable && !collapsible || fixedSize, _a['k-scrollable'] = scrollable, _a));
65
+ return h("div", {
66
+ style: style,
67
+ "class": paneClasses
68
+ }, [!collapsed || keepMounted ? this.props.children : undefined, overlay ? h("div", {
69
+ "class": 'k-splitter-overlay k-overlay'
70
+ }) : undefined]);
71
+ }
72
+ };
73
+ exports.SplitterPaneVue2 = SplitterPaneVue2;
74
+ var SplitterPane = SplitterPaneVue2;
75
+ exports.SplitterPane = SplitterPane;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@progress/kendo-vue-layout",
3
3
  "description": "Kendo UI for Vue Layouts package",
4
- "version": "3.1.1",
4
+ "version": "3.1.2-dev.202203221454",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/telerik/kendo-vue.git"
@@ -37,21 +37,21 @@
37
37
  "vue": "^2.6.12 || ^3.0.2"
38
38
  },
39
39
  "dependencies": {
40
- "@progress/kendo-vue-animation": "3.1.1",
41
- "@progress/kendo-vue-common": "3.1.1",
42
- "@progress/kendo-vue-popup": "3.1.1"
40
+ "@progress/kendo-vue-animation": "3.1.2-dev.202203221454",
41
+ "@progress/kendo-vue-common": "3.1.2-dev.202203221454",
42
+ "@progress/kendo-vue-popup": "3.1.2-dev.202203221454"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@progress/kendo-data-query": "^1.5.0",
46
46
  "@progress/kendo-date-math": "^1.5.1",
47
47
  "@progress/kendo-drawing": "^1.8.0",
48
48
  "@progress/kendo-licensing": "^1.0.1",
49
- "@progress/kendo-vue-buttons": "3.1.1",
50
- "@progress/kendo-vue-dateinputs": "3.1.1",
51
- "@progress/kendo-vue-dropdowns": "3.1.1",
52
- "@progress/kendo-vue-inputs": "3.1.1",
53
- "@progress/kendo-vue-intl": "3.1.1",
54
- "@progress/kendo-vue-progressbars": "3.1.1"
49
+ "@progress/kendo-vue-buttons": "3.1.2-dev.202203221454",
50
+ "@progress/kendo-vue-dateinputs": "3.1.2-dev.202203221454",
51
+ "@progress/kendo-vue-dropdowns": "3.1.2-dev.202203221454",
52
+ "@progress/kendo-vue-inputs": "3.1.2-dev.202203221454",
53
+ "@progress/kendo-vue-intl": "3.1.2-dev.202203221454",
54
+ "@progress/kendo-vue-progressbars": "3.1.2-dev.202203221454"
55
55
  },
56
56
  "@progress": {
57
57
  "friendlyName": "Layouts",