neo.mjs 6.20.1 → 6.22.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/apps/ServiceWorker.mjs +2 -2
- package/apps/colors/view/HeaderToolbar.mjs +7 -3
- package/apps/covid/view/MainContainerController.mjs +6 -6
- package/apps/covid/view/TableContainer.mjs +5 -3
- package/apps/covid/view/country/Gallery.mjs +6 -4
- package/apps/form/view/ViewportModel.mjs +2 -2
- package/apps/portal/index.html +23 -1
- package/apps/portal/view/HeaderToolbar.mjs +2 -2
- package/apps/portal/view/Viewport.mjs +3 -1
- package/apps/portal/view/ViewportController.mjs +10 -0
- package/apps/portal/view/about/Container.mjs +44 -0
- package/apps/portal/view/about/MemberContainer.mjs +191 -0
- package/apps/portal/view/home/MainContainer.mjs +9 -2
- package/apps/portal/view/home/parts/AfterMath.mjs +12 -8
- package/apps/portal/view/home/parts/Colors.mjs +8 -2
- package/apps/portal/view/home/parts/Features.mjs +50 -83
- package/apps/portal/view/home/parts/Helix.mjs +8 -2
- package/apps/portal/view/home/parts/MainNeo.mjs +17 -5
- package/apps/portal/view/learn/ContentView.mjs +18 -4
- package/apps/realworld/api/Base.mjs +5 -5
- package/apps/realworld/view/MainContainerController.mjs +19 -17
- package/apps/realworld2/api/Base.mjs +5 -5
- package/apps/realworld2/view/MainContainerController.mjs +11 -11
- package/apps/realworld2/view/article/Gallery.mjs +6 -4
- package/apps/sharedcovid/view/MainContainerController.mjs +11 -12
- package/apps/sharedcovid/view/TableContainer.mjs +7 -5
- package/apps/sharedcovid/view/country/Gallery.mjs +6 -4
- package/apps/shareddialog/view/MainContainerController.mjs +5 -5
- package/buildScripts/webpack/json/myApps.template.json +1 -2
- package/docs/app/view/classdetails/MembersList.mjs +8 -8
- package/docs/app/view/classdetails/SourceViewComponent.mjs +6 -6
- package/docs/app/view/classdetails/TutorialComponent.mjs +9 -9
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/component/coronaGallery/CountryGallery.mjs +6 -4
- package/examples/component/helix/Viewport.mjs +2 -2
- package/examples/list/circle/MainContainer.mjs +7 -7
- package/examples/preloadingAssets/view/MainContainerController.mjs +5 -5
- package/package.json +5 -5
- package/resources/data/deck/learnneo/pages/GuideEvents.md +2 -4
- package/resources/data/deck/learnneo/pages/WhyNeo-Features.md +46 -0
- package/resources/data/deck/learnneo/pages/WhyNeo-Intro.md +5 -6
- package/resources/data/deck/learnneo/pages/WhyNeo-Multi-Window.md +1 -1
- package/resources/data/deck/learnneo/tree.json +3 -2
- package/resources/fonts/GT-Planar-Regular.otf +0 -0
- package/resources/images/logo/neo_logo_favicon.svg +16 -0
- package/resources/images/team/tobiu.png +0 -0
- package/resources/scss/src/apps/colors/HeaderToolbar.scss +23 -1
- package/resources/scss/src/apps/colors/Viewport.scss +10 -0
- package/resources/scss/src/apps/portal/HeaderToolbar.scss +7 -7
- package/resources/scss/src/apps/portal/Viewport.scss +10 -0
- package/resources/scss/src/apps/portal/about/Container.scss +4 -0
- package/resources/scss/src/apps/portal/about/MemberContainer.scss +70 -0
- package/resources/scss/src/apps/portal/home/FooterContainer.scss +12 -0
- package/resources/scss/src/apps/portal/home/parts/BaseContainer.scss +16 -16
- package/resources/scss/src/apps/portal/home/parts/MainNeo.scss +62 -7
- package/resources/scss/src/apps/portal/learn/ContentView.scss +1 -0
- package/resources/scss/src/apps/portal/learn/PageContainer.scss +6 -0
- package/resources/scss/src/code/LivePreview.scss +4 -1
- package/resources/scss/src/layout/Cube.scss +3 -3
- package/resources/scss/src/plugin/Resizable.scss +12 -19
- package/resources/scss/theme-neo-light/dialog/Base.scss +12 -2
- package/src/DefaultConfig.mjs +2 -2
- package/src/calendar/view/MainContainer.mjs +10 -10
- package/src/calendar/view/SettingsContainer.mjs +10 -10
- package/src/calendar/view/YearComponent.mjs +2 -2
- package/src/calendar/view/calendars/List.mjs +2 -2
- package/src/calendar/view/month/Component.mjs +4 -4
- package/src/calendar/view/week/Component.mjs +2 -2
- package/src/calendar/view/week/plugin/DragDrop.mjs +4 -4
- package/src/code/LivePreview.mjs +92 -6
- package/src/component/Base.mjs +3 -3
- package/src/component/Circle.mjs +5 -5
- package/src/component/DateSelector.mjs +4 -4
- package/src/component/Gallery.mjs +8 -8
- package/src/component/Helix.mjs +15 -12
- package/src/component/Toast.mjs +1 -1
- package/src/component/wrapper/AmChart.mjs +2 -2
- package/src/component/wrapper/CesiumJS.mjs +2 -2
- package/src/component/wrapper/GoogleMaps.mjs +2 -2
- package/src/component/wrapper/MonacoEditor.mjs +3 -3
- package/src/core/Observable.mjs +2 -2
- package/src/data/Store.mjs +2 -2
- package/src/dialog/Base.mjs +44 -14
- package/src/draggable/DragZone.mjs +4 -4
- package/src/draggable/list/DragZone.mjs +4 -4
- package/src/draggable/tab/header/toolbar/SortZone.mjs +2 -2
- package/src/draggable/toolbar/DragZone.mjs +4 -4
- package/src/draggable/toolbar/SortZone.mjs +3 -3
- package/src/form/field/ComboBox.mjs +3 -2
- package/src/form/field/FileUpload.mjs +3 -3
- package/src/form/field/Text.mjs +2 -2
- package/src/form/field/TextArea.mjs +2 -2
- package/src/grid/Container.mjs +2 -2
- package/src/layout/Cube.mjs +1 -3
- package/src/list/plugin/Animate.mjs +23 -23
- package/src/main/DomAccess.mjs +1 -1
- package/src/main/DomEvents.mjs +14 -5
- package/src/main/addon/AmCharts.mjs +2 -2
- package/src/main/addon/MapboxGL.mjs +4 -4
- package/src/manager/DomEvent.mjs +2 -2
- package/src/manager/Focus.mjs +2 -2
- package/src/manager/Toast.mjs +6 -4
- package/src/manager/rpc/Message.mjs +2 -2
- package/src/plugin/Resizable.mjs +11 -3
- package/src/selection/HelixModel.mjs +3 -3
- package/src/tab/Strip.mjs +4 -4
- package/src/table/Container.mjs +4 -4
- package/src/util/Logger.mjs +6 -4
- package/src/worker/App.mjs +2 -2
- package/src/worker/Manager.mjs +3 -2
- package/apps/website/Overwrites.mjs +0 -16
- package/apps/website/app.mjs +0 -7
- package/apps/website/data/blog.json +0 -769
- package/apps/website/data/docs.json +0 -29
- package/apps/website/data/examples_devmode.json +0 -173
- package/apps/website/data/examples_dist_dev.json +0 -164
- package/apps/website/data/examples_dist_prod.json +0 -164
- package/apps/website/index.html +0 -11
- package/apps/website/model/BlogPost.mjs +0 -60
- package/apps/website/model/Example.mjs +0 -48
- package/apps/website/neo-config.json +0 -7
- package/apps/website/store/BlogPosts.mjs +0 -39
- package/apps/website/store/Examples.mjs +0 -35
- package/apps/website/view/HeaderContainer.mjs +0 -72
- package/apps/website/view/MainContainer.mjs +0 -95
- package/apps/website/view/MainContainerController.mjs +0 -230
- package/apps/website/view/blog/Container.mjs +0 -50
- package/apps/website/view/blog/List.mjs +0 -171
- package/apps/website/view/examples/List.mjs +0 -124
- package/apps/website/view/examples/TabContainer.mjs +0 -66
- package/apps/website/view/home/DeveloperIntroComponent.mjs +0 -266
- package/apps/website/view/home/ExecutiveIntroComponent.mjs +0 -291
- package/apps/website/view/home/TabContainer.mjs +0 -56
- package/resources/scss/src/apps/website/HeaderContainer.scss +0 -136
- package/resources/scss/src/apps/website/MainContainer.scss +0 -25
- package/resources/scss/src/apps/website/blog/Container.scss +0 -18
- package/resources/scss/src/apps/website/blog/List.scss +0 -183
- package/resources/scss/src/apps/website/examples/List.scss +0 -157
- package/resources/scss/src/apps/website/home/TabContainer.scss +0 -117
- package/resources/scss/theme-dark/apps/website/HeaderContainer.scss +0 -5
- package/resources/scss/theme-dark/apps/website/MainContainer.scss +0 -4
- package/resources/scss/theme-dark/apps/website/blog/Container.scss +0 -3
- package/resources/scss/theme-dark/apps/website/home/TabContainer.scss +0 -4
- package/resources/scss/theme-light/apps/website/HeaderContainer.scss +0 -5
- package/resources/scss/theme-light/apps/website/MainContainer.scss +0 -4
- package/resources/scss/theme-light/apps/website/blog/Container.scss +0 -3
- package/resources/scss/theme-light/apps/website/home/TabContainer.scss +0 -4
- package/resources/scss/theme-neo-light/apps/website/HeaderContainer.scss +0 -5
- package/resources/scss/theme-neo-light/apps/website/MainContainer.scss +0 -4
- package/resources/scss/theme-neo-light/apps/website/blog/Container.scss +0 -3
- package/resources/scss/theme-neo-light/apps/website/home/TabContainer.scss +0 -4
@@ -1,5 +1,8 @@
|
|
1
1
|
.neo-code-live-preview {
|
2
|
-
margin-bottom: 2em;
|
2
|
+
margin-bottom : 2em;
|
3
|
+
transition-duration : .3s;
|
4
|
+
transition-property : height, left, top, width;
|
5
|
+
transition-timing-function: ease-out;
|
3
6
|
|
4
7
|
.live-preview-container {
|
5
8
|
border-radius: calc(var(--cmp-tab-strip-height) + var(--cmp-button-borderradius));
|
@@ -1,7 +1,3 @@
|
|
1
|
-
// font awesome does not have grip handles for corners.
|
2
|
-
// using the th icon with a clip-path.
|
3
|
-
// similar to: https://github.com/FortAwesome/Font-Awesome/issues/645#issuecomment-361663544
|
4
|
-
|
5
1
|
.neo-resizable {
|
6
2
|
align-items : center;
|
7
3
|
color : #bbb;
|
@@ -42,13 +38,12 @@
|
|
42
38
|
cursor: sw-resize;
|
43
39
|
left : 0;
|
44
40
|
height: 1em;
|
45
|
-
width :
|
41
|
+
width : 1em;
|
46
42
|
|
47
43
|
&::after {
|
48
|
-
|
49
|
-
content : "\f00a";
|
44
|
+
content : "\f101";
|
50
45
|
font-size: 1em;
|
51
|
-
transform: rotate(
|
46
|
+
transform: rotate(135deg);
|
52
47
|
}
|
53
48
|
}
|
54
49
|
|
@@ -57,12 +52,12 @@
|
|
57
52
|
cursor: se-resize;
|
58
53
|
right : 0;
|
59
54
|
height: 1em;
|
60
|
-
width :
|
55
|
+
width : 1em;
|
61
56
|
|
62
57
|
&::after {
|
63
|
-
|
64
|
-
content : "\f00a";
|
58
|
+
content : "\f101";
|
65
59
|
font-size: 1em;
|
60
|
+
transform: rotate(45deg);
|
66
61
|
}
|
67
62
|
}
|
68
63
|
|
@@ -86,13 +81,12 @@
|
|
86
81
|
left : 0;
|
87
82
|
top : 0;
|
88
83
|
height: 1em;
|
89
|
-
width :
|
84
|
+
width : 1em;
|
90
85
|
|
91
86
|
&::after {
|
92
|
-
|
93
|
-
content : "\f00a";
|
87
|
+
content : "\f101";
|
94
88
|
font-size: 1em;
|
95
|
-
transform: rotate(
|
89
|
+
transform: rotate(-135deg);
|
96
90
|
}
|
97
91
|
}
|
98
92
|
|
@@ -101,13 +95,12 @@
|
|
101
95
|
right : 0;
|
102
96
|
top : 0;
|
103
97
|
height: 1em;
|
104
|
-
width :
|
98
|
+
width : 1em;
|
105
99
|
|
106
100
|
&::after {
|
107
|
-
|
108
|
-
content : "\f00a";
|
101
|
+
content : "\f101";
|
109
102
|
font-size: 1em;
|
110
|
-
transform: rotate(
|
103
|
+
transform: rotate(-45deg);
|
111
104
|
}
|
112
105
|
}
|
113
106
|
}
|
@@ -1,6 +1,16 @@
|
|
1
1
|
:root .neo-theme-neo-light { // .neo-dialog
|
2
2
|
--dialog-border-color: #ddd;
|
3
3
|
--dialog-box-shadow : 0 5px 10px rgba(0,0,0,.4);
|
4
|
-
--dialog-header-color:
|
5
|
-
--dialog-icon-color :
|
4
|
+
--dialog-header-color: var(--purple-500);
|
5
|
+
--dialog-icon-color : var(--purple-500);
|
6
|
+
|
7
|
+
.neo-dialog {
|
8
|
+
.neo-header-toolbar {
|
9
|
+
.neo-button {
|
10
|
+
background-color: transparent;
|
11
|
+
height : unset;
|
12
|
+
min-width : unset;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
}
|
6
16
|
}
|
package/src/DefaultConfig.mjs
CHANGED
@@ -260,12 +260,12 @@ const DefaultConfig = {
|
|
260
260
|
useVdomWorker: true,
|
261
261
|
/**
|
262
262
|
* buildScripts/injectPackageVersion.mjs will update this value
|
263
|
-
* @default '6.
|
263
|
+
* @default '6.22.0'
|
264
264
|
* @memberOf! module:Neo
|
265
265
|
* @name config.version
|
266
266
|
* @type String
|
267
267
|
*/
|
268
|
-
version: '6.
|
268
|
+
version: '6.22.0'
|
269
269
|
};
|
270
270
|
|
271
271
|
Object.assign(DefaultConfig, {
|
@@ -235,9 +235,9 @@ class MainContainer extends Container {
|
|
235
235
|
} else {
|
236
236
|
me.createSettingsContainer(true).then(() => {
|
237
237
|
// short delay to ensure the vnode already exists
|
238
|
-
|
238
|
+
me.timeout(50).then(() => {
|
239
239
|
me.items[1].items[2].expand()
|
240
|
-
}
|
240
|
+
})
|
241
241
|
})
|
242
242
|
}
|
243
243
|
} else {
|
@@ -264,10 +264,10 @@ class MainContainer extends Container {
|
|
264
264
|
me.promiseUpdate().then(() => {
|
265
265
|
sideBar.mounted = true;
|
266
266
|
|
267
|
-
|
267
|
+
me.timeout(50).then(() => {
|
268
268
|
style.marginLeft = '0px';
|
269
|
-
sideBar.style = style
|
270
|
-
}
|
269
|
+
sideBar.style = style
|
270
|
+
})
|
271
271
|
})
|
272
272
|
} else {
|
273
273
|
style.marginLeft = `-${me.sideBarWidth}px`;
|
@@ -275,13 +275,13 @@ class MainContainer extends Container {
|
|
275
275
|
sideBar._vdom.style = style; // silent update
|
276
276
|
|
277
277
|
me.promiseUpdate().then(() => {
|
278
|
-
|
278
|
+
me.timeout(400).then(() => {
|
279
279
|
sideBar.vdom.removeDom = true;
|
280
280
|
sideBar.update();
|
281
281
|
|
282
282
|
sideBar.mounted = false
|
283
|
-
}
|
284
|
-
})
|
283
|
+
})
|
284
|
+
})
|
285
285
|
}
|
286
286
|
}
|
287
287
|
}
|
@@ -299,13 +299,13 @@ class MainContainer extends Container {
|
|
299
299
|
me.settingsExpanded && me.createSettingsContainer(false);
|
300
300
|
|
301
301
|
// we need a short delay to ensure the items already got created
|
302
|
-
|
302
|
+
me.timeout(10).then(() => {
|
303
303
|
me.items[0].items[1].add({
|
304
304
|
handler: me.toggleSettings.bind(me),
|
305
305
|
iconCls: 'fa fa-cog',
|
306
306
|
style : {marginLeft: '10px'}
|
307
307
|
})
|
308
|
-
}
|
308
|
+
})
|
309
309
|
} else if (!value && oldValue) {
|
310
310
|
// we only need this logic in case we dynamically change the config from true to false
|
311
311
|
me.items[1] .removeLast();
|
@@ -54,18 +54,18 @@ class SettingsContainer extends Container {
|
|
54
54
|
style = me.style || {};
|
55
55
|
|
56
56
|
style.marginRight = `-${width}px`;
|
57
|
-
me._style
|
58
|
-
me._vdom.style
|
57
|
+
me._style = style; // silent update
|
58
|
+
me._vdom.style = style; // silent update
|
59
59
|
|
60
60
|
me.parent.promiseUpdate().then(() => {
|
61
|
-
|
61
|
+
me.timeout(400).then(() => {
|
62
62
|
me.collapsed = true;
|
63
63
|
|
64
64
|
me.vdom.removeDom = true;
|
65
65
|
me.update();
|
66
66
|
|
67
|
-
me.mounted = false
|
68
|
-
}
|
67
|
+
me.mounted = false
|
68
|
+
})
|
69
69
|
})
|
70
70
|
}
|
71
71
|
|
@@ -149,11 +149,11 @@ class SettingsContainer extends Container {
|
|
149
149
|
me.collapsed = false;
|
150
150
|
me.mounted = true;
|
151
151
|
|
152
|
-
|
152
|
+
me.timeout(50).then(() => {
|
153
153
|
style = me.style || {}
|
154
154
|
style.marginRight = '0px';
|
155
|
-
me.style = style
|
156
|
-
}
|
155
|
+
me.style = style
|
156
|
+
})
|
157
157
|
})
|
158
158
|
}
|
159
159
|
|
@@ -178,10 +178,10 @@ class SettingsContainer extends Container {
|
|
178
178
|
if (Neo.typeOf(mainContainer[`${container.flag}Component`]) !== 'NeoInstance') {
|
179
179
|
listenerId = mainContainer.on('cardLoaded', () => {
|
180
180
|
mainContainer.un('cardLoaded', listenerId);
|
181
|
-
|
181
|
+
me.timeout(30).then(() => {container.createContent()})
|
182
182
|
})
|
183
183
|
} else {
|
184
|
-
|
184
|
+
me.timeout(30).then(() => {container.createContent()})
|
185
185
|
}
|
186
186
|
}
|
187
187
|
|
@@ -517,10 +517,10 @@ class YearComponent extends Component {
|
|
517
517
|
vdom.cn[0].cn[0].style.transform = `translateY(${y}px)`;
|
518
518
|
me.update();
|
519
519
|
|
520
|
-
|
520
|
+
me.timeout(300).then(() => {
|
521
521
|
vdom.cn[0] = vdom.cn[0].cn[0].cn[scrollFromTop ? 1 : 0];
|
522
522
|
me.triggerVdomUpdate()
|
523
|
-
}
|
523
|
+
})
|
524
524
|
})
|
525
525
|
})
|
526
526
|
}
|
@@ -97,9 +97,9 @@ class List extends ComponentList {
|
|
97
97
|
onClick(data) {
|
98
98
|
// The click even arrives before the CheckBox onInputValueChange() gets triggered.
|
99
99
|
// We need a short delay to ensure the vdom of the list item contains the new checked state
|
100
|
-
|
100
|
+
this.timeout(20).then(() => {
|
101
101
|
super.onClick(data)
|
102
|
-
}
|
102
|
+
});
|
103
103
|
|
104
104
|
if (data.path[0].cls.includes('neo-edit-icon')) {
|
105
105
|
let me = this,
|
@@ -309,10 +309,10 @@ class Component extends BaseComponent {
|
|
309
309
|
if (value) {
|
310
310
|
if (me.needsEventUpdate) {
|
311
311
|
me.createContent();
|
312
|
-
me.needsEventUpdate = false
|
312
|
+
me.needsEventUpdate = false
|
313
313
|
}
|
314
314
|
|
315
|
-
|
315
|
+
me.timeout(100).then(() => {
|
316
316
|
me.getDomRect([me.vdom.cn[1].id, me.vdom.cn[0].id]).then(data => {
|
317
317
|
me.headerHeight = data[1].height;
|
318
318
|
|
@@ -320,9 +320,9 @@ class Component extends BaseComponent {
|
|
320
320
|
direction: 'top',
|
321
321
|
id : me.vdom.cn[1].id,
|
322
322
|
value : data[0].height - data[1].height
|
323
|
-
})
|
323
|
+
})
|
324
324
|
})
|
325
|
-
}
|
325
|
+
})
|
326
326
|
}
|
327
327
|
}
|
328
328
|
|
@@ -769,7 +769,7 @@ class Component extends BaseComponent {
|
|
769
769
|
|
770
770
|
// we need a short delay to move the event rendering into the next animation frame.
|
771
771
|
// Details: https://github.com/neomjs/neo/issues/2216
|
772
|
-
|
772
|
+
me.timeout(50).then(() => {me.updateEvents(false, columnsBuffer + columnsVisible, me.totalColumns)});
|
773
773
|
|
774
774
|
scrollValue = -width
|
775
775
|
}
|
@@ -793,7 +793,7 @@ class Component extends BaseComponent {
|
|
793
793
|
|
794
794
|
// we need a short delay to move the event rendering into the next animation frame.
|
795
795
|
// Details: https://github.com/neomjs/neo/issues/2216
|
796
|
-
|
796
|
+
me.timeout(50).then(() => {me.updateEvents(false, 0, columnsBuffer)});
|
797
797
|
|
798
798
|
scrollValue = width
|
799
799
|
}
|
@@ -213,7 +213,7 @@ class DragDrop extends Base {
|
|
213
213
|
me[newRecordSymbol] = record;
|
214
214
|
|
215
215
|
// wait until the new event got mounted
|
216
|
-
|
216
|
+
me.timeout(50).then(() => {
|
217
217
|
eventId = owner.getEventId(record.id);
|
218
218
|
dragElement = VDomUtil.findVdomChild(owner.vdom, eventId).vdom;
|
219
219
|
|
@@ -227,13 +227,13 @@ class DragDrop extends Base {
|
|
227
227
|
owner.getPlugin(me.resizablePluginType).onDragStart(data);
|
228
228
|
eventDragZone.dragStart(data);
|
229
229
|
|
230
|
-
|
230
|
+
me.timeout(50).then(() => {
|
231
231
|
me.isDragging && Neo.applyDeltas(me.appName, {
|
232
232
|
id : eventId,
|
233
233
|
style: {opacity: 0}
|
234
234
|
})
|
235
|
-
}
|
236
|
-
}
|
235
|
+
})
|
236
|
+
})
|
237
237
|
}
|
238
238
|
}
|
239
239
|
|
package/src/code/LivePreview.mjs
CHANGED
@@ -44,6 +44,10 @@ class LivePreview extends Container {
|
|
44
44
|
* @member {Boolean} disableRunSource=false
|
45
45
|
*/
|
46
46
|
disableRunSource: false,
|
47
|
+
/**
|
48
|
+
* @member {Boolean} enableFullscreen=true
|
49
|
+
*/
|
50
|
+
enableFullscreen: true,
|
47
51
|
/**
|
48
52
|
* @member {Number} height=400
|
49
53
|
*/
|
@@ -127,6 +131,71 @@ class LivePreview extends Container {
|
|
127
131
|
return this.beforeSetEnumValue(value, oldValue, 'activeView')
|
128
132
|
}
|
129
133
|
|
134
|
+
/**
|
135
|
+
* @param {Object} data
|
136
|
+
*/
|
137
|
+
async collapseExpand(data) {
|
138
|
+
let me = this,
|
139
|
+
button = data.component,
|
140
|
+
collapse = button.iconCls === 'fas fa-compress',
|
141
|
+
{vdom} = me,
|
142
|
+
rect;
|
143
|
+
|
144
|
+
if (collapse) {
|
145
|
+
button.iconCls = 'fas fa-expand';
|
146
|
+
|
147
|
+
rect = me.collapseRect;
|
148
|
+
|
149
|
+
delete me.collapseRect;
|
150
|
+
|
151
|
+
Object.assign(vdom.style, {
|
152
|
+
height : rect.height + 'px',
|
153
|
+
left : rect.x + 'px',
|
154
|
+
top : rect.y + 'px',
|
155
|
+
width : rect.width + 'px'
|
156
|
+
});
|
157
|
+
|
158
|
+
me.update();
|
159
|
+
|
160
|
+
await me.timeout(300);
|
161
|
+
|
162
|
+
Object.assign(vdom.style, {
|
163
|
+
position: null,
|
164
|
+
zIndex : null
|
165
|
+
})
|
166
|
+
} else {
|
167
|
+
button.iconCls = 'fas fa-compress';
|
168
|
+
|
169
|
+
rect = await me.getDomRect();
|
170
|
+
|
171
|
+
me.collapseRect = rect;
|
172
|
+
|
173
|
+
vdom.style = vdom.style || {};
|
174
|
+
|
175
|
+
Object.assign(vdom.style, {
|
176
|
+
height : rect.height + 'px',
|
177
|
+
left : rect.x + 'px',
|
178
|
+
position: 'fixed',
|
179
|
+
top : rect.y + 'px',
|
180
|
+
width : rect.width + 'px',
|
181
|
+
zIndex : 100
|
182
|
+
});
|
183
|
+
|
184
|
+
me.update();
|
185
|
+
|
186
|
+
await me.timeout(50);
|
187
|
+
|
188
|
+
Object.assign(vdom.style, {
|
189
|
+
height: '100%',
|
190
|
+
left : 0,
|
191
|
+
top : 0,
|
192
|
+
width : '100%'
|
193
|
+
})
|
194
|
+
}
|
195
|
+
|
196
|
+
me.update()
|
197
|
+
}
|
198
|
+
|
130
199
|
/**
|
131
200
|
*
|
132
201
|
*/
|
@@ -269,12 +338,15 @@ class LivePreview extends Container {
|
|
269
338
|
* @param {Number} data.value
|
270
339
|
*/
|
271
340
|
onActiveIndexChange(data) {
|
341
|
+
let me = this,
|
342
|
+
hidden = data.value !== 1;
|
343
|
+
|
272
344
|
if (data.item.reference === 'preview') {
|
273
|
-
|
345
|
+
me.doRunSource()
|
274
346
|
}
|
275
347
|
|
276
|
-
|
277
|
-
|
348
|
+
me.getReference('popout-window-button').hidden = hidden
|
349
|
+
me.disableRunSource = false;
|
278
350
|
}
|
279
351
|
|
280
352
|
/**
|
@@ -284,18 +356,32 @@ class LivePreview extends Container {
|
|
284
356
|
super.onConstructed();
|
285
357
|
|
286
358
|
let me = this,
|
359
|
+
items = [],
|
287
360
|
{tabContainer} = me;
|
288
361
|
|
289
|
-
|
290
|
-
|
362
|
+
if (me.enableFullscreen) {
|
363
|
+
items.push({
|
364
|
+
handler: me.collapseExpand.bind(me),
|
365
|
+
iconCls: 'fas fa-expand',
|
366
|
+
ui : 'ghost'
|
367
|
+
})
|
368
|
+
}
|
369
|
+
|
370
|
+
items.push({
|
291
371
|
handler : me.popoutPreview.bind(me),
|
292
372
|
hidden : tabContainer.activeIndex !== 1,
|
293
373
|
iconCls : 'far fa-window-maximize',
|
294
374
|
reference: 'popout-window-button',
|
295
|
-
style : {marginLeft: 'auto'},
|
296
375
|
ui : 'ghost'
|
297
376
|
});
|
298
377
|
|
378
|
+
items[0].style = {marginLeft: 'auto'};
|
379
|
+
|
380
|
+
// we want to add a normal (non-header) button
|
381
|
+
tabContainer.getTabBar().add(items);
|
382
|
+
|
383
|
+
tabContainer.getTabBar().update();
|
384
|
+
|
299
385
|
tabContainer.on('activeIndexChange', me.onActiveIndexChange, me);
|
300
386
|
|
301
387
|
// changing the activeView initially will not trigger our onActiveIndexChange() logic
|
package/src/component/Base.mjs
CHANGED
@@ -816,9 +816,9 @@ class Base extends CoreBase {
|
|
816
816
|
|
817
817
|
if (me.domListeners?.length > 0) {
|
818
818
|
// todo: the main thread reply of mount arrives after pushing the task into the queue which does not ensure the dom is mounted
|
819
|
-
|
819
|
+
me.timeout(150).then(() => {
|
820
820
|
DomEventManager.mountDomListeners(me)
|
821
|
-
}
|
821
|
+
})
|
822
822
|
}
|
823
823
|
|
824
824
|
me.doResolveUpdateCache();
|
@@ -1798,7 +1798,7 @@ class Base extends CoreBase {
|
|
1798
1798
|
}
|
1799
1799
|
|
1800
1800
|
if (timeout) {
|
1801
|
-
|
1801
|
+
me.timeout(timeout).then(removeFn)
|
1802
1802
|
} else {
|
1803
1803
|
removeFn()
|
1804
1804
|
}
|
package/src/component/Circle.mjs
CHANGED
@@ -244,10 +244,10 @@ class Circle extends Component {
|
|
244
244
|
} else {
|
245
245
|
me.updateItemOpacity(0, true, value);
|
246
246
|
|
247
|
-
|
247
|
+
me.timeout(300).then(() => {
|
248
248
|
frontEl.cn.splice(value + 2);
|
249
249
|
me.update()
|
250
|
-
}
|
250
|
+
})
|
251
251
|
}
|
252
252
|
|
253
253
|
me.updateItemPositions(true);
|
@@ -596,13 +596,13 @@ class Circle extends Component {
|
|
596
596
|
}).then(data => {
|
597
597
|
me.store.items = data.json.data;
|
598
598
|
|
599
|
-
|
599
|
+
me.timeout(100).then(() => {
|
600
600
|
me.updateTitle();
|
601
601
|
me.createItems()
|
602
|
-
}
|
602
|
+
})
|
603
603
|
}).catch(err => {
|
604
604
|
console.log('Error for Neo.Xhr.request', err, me.id)
|
605
|
-
})
|
605
|
+
})
|
606
606
|
}
|
607
607
|
|
608
608
|
/**
|
@@ -454,11 +454,11 @@ class DateSelector extends Component {
|
|
454
454
|
me.updateHeaderMonthTransitionCallback(headerMonthOpts);
|
455
455
|
me.update();
|
456
456
|
|
457
|
-
|
457
|
+
me.timeout(300).then(() => {
|
458
458
|
me.changeMonthWrapperCallback(slideDirection);
|
459
459
|
me.updateHeaderMonthWrapperCallback(headerMonthOpts);
|
460
460
|
me.triggerVdomUpdate()
|
461
|
-
}
|
461
|
+
})
|
462
462
|
})
|
463
463
|
})
|
464
464
|
} else {
|
@@ -538,10 +538,10 @@ class DateSelector extends Component {
|
|
538
538
|
vdom.cn[1].cn[0].style.transform = `translateY(${y}px)`;
|
539
539
|
me.update();
|
540
540
|
|
541
|
-
|
541
|
+
me.timeout(300).then(() => {
|
542
542
|
vdom.cn[1] = vdom.cn[1].cn[0].cn[scrollFromTop ? 1 : 0];
|
543
543
|
me.triggerVdomUpdate()
|
544
|
-
}
|
544
|
+
})
|
545
545
|
})
|
546
546
|
})
|
547
547
|
} else {
|
@@ -256,7 +256,7 @@ class Gallery extends Component {
|
|
256
256
|
if (value) {
|
257
257
|
me.focusOnMount && me.focus(me.id);
|
258
258
|
|
259
|
-
|
259
|
+
me.timeout(300).then(() => {
|
260
260
|
Neo.currentWorker.promiseMessage('main', {
|
261
261
|
action : 'readDom',
|
262
262
|
appName : me.appName,
|
@@ -280,7 +280,7 @@ class Gallery extends Component {
|
|
280
280
|
selectionModel.select(key)
|
281
281
|
}
|
282
282
|
})
|
283
|
-
}
|
283
|
+
})
|
284
284
|
} else {
|
285
285
|
selectionModel.items = []
|
286
286
|
}
|
@@ -302,19 +302,19 @@ class Gallery extends Component {
|
|
302
302
|
if (me.rendered) {
|
303
303
|
me.refreshImageReflection();
|
304
304
|
|
305
|
-
|
305
|
+
me.timeout(50).then(() => {
|
306
306
|
for (; i < len; i++) {
|
307
307
|
view.cn[i].style.transform = me.getItemTransform(i)
|
308
308
|
}
|
309
309
|
|
310
310
|
me.update();
|
311
311
|
|
312
|
-
|
312
|
+
me.timeout(500).then(() => {
|
313
313
|
let sm = me.selectionModel;
|
314
314
|
|
315
315
|
sm.hasSelection() && me.onSelectionChange(sm.items)
|
316
|
-
}
|
317
|
-
}
|
316
|
+
})
|
317
|
+
})
|
318
318
|
}
|
319
319
|
}
|
320
320
|
}
|
@@ -695,9 +695,9 @@ class Gallery extends Component {
|
|
695
695
|
view.cn = newCn;
|
696
696
|
me.update();
|
697
697
|
|
698
|
-
|
698
|
+
me.timeout(50).then(() => {
|
699
699
|
me.afterSetOrderByRow(me.orderByRow, !me.orderByRow)
|
700
|
-
}
|
700
|
+
})
|
701
701
|
}
|
702
702
|
}
|
703
703
|
}
|