neo.mjs 10.0.0-alpha.5 → 10.0.0-beta.2
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/ServiceWorker.mjs +2 -2
- package/apps/colors/view/GridContainer.mjs +1 -1
- package/apps/covid/view/AttributionComponent.mjs +1 -1
- package/apps/covid/view/HeaderContainer.mjs +6 -6
- package/apps/covid/view/MainContainerController.mjs +5 -5
- package/apps/covid/view/TableContainerController.mjs +1 -1
- package/apps/covid/view/country/Gallery.mjs +13 -13
- package/apps/covid/view/country/Helix.mjs +13 -13
- package/apps/covid/view/country/HistoricalDataTable.mjs +1 -1
- package/apps/email/view/Viewport.mjs +2 -2
- package/apps/form/view/SideNavList.mjs +1 -1
- package/apps/portal/index.html +1 -1
- package/apps/portal/resources/data/examples_devmode.json +26 -27
- package/apps/portal/resources/data/examples_dist_dev.json +26 -27
- package/apps/portal/resources/data/examples_dist_esm.json +25 -26
- package/apps/portal/resources/data/examples_dist_prod.json +26 -27
- package/apps/portal/view/HeaderToolbar.mjs +3 -3
- package/apps/portal/view/about/Container.mjs +2 -2
- package/apps/portal/view/about/MemberContainer.mjs +3 -3
- package/apps/portal/view/blog/List.mjs +7 -7
- package/apps/portal/view/examples/List.mjs +4 -4
- package/apps/portal/view/home/ContentBox.mjs +2 -2
- package/apps/portal/view/home/FeatureSection.mjs +3 -3
- package/apps/portal/view/home/FooterContainer.mjs +7 -7
- package/apps/portal/view/home/parts/AfterMath.mjs +3 -3
- package/apps/portal/view/home/parts/MainNeo.mjs +3 -3
- package/apps/portal/view/home/parts/References.mjs +6 -6
- package/apps/portal/view/learn/ContentComponent.mjs +102 -111
- package/apps/portal/view/learn/PageSectionsContainer.mjs +1 -1
- package/apps/portal/view/learn/PageSectionsList.mjs +2 -2
- package/apps/portal/view/services/Component.mjs +16 -16
- package/apps/realworld/view/FooterComponent.mjs +1 -1
- package/apps/realworld/view/HeaderComponent.mjs +8 -8
- package/apps/realworld/view/HomeComponent.mjs +6 -6
- package/apps/realworld/view/article/CommentComponent.mjs +4 -4
- package/apps/realworld/view/article/Component.mjs +14 -14
- package/apps/realworld/view/article/CreateCommentComponent.mjs +3 -3
- package/apps/realworld/view/article/CreateComponent.mjs +3 -3
- package/apps/realworld/view/article/PreviewComponent.mjs +1 -1
- package/apps/realworld/view/article/TagListComponent.mjs +2 -2
- package/apps/realworld/view/user/ProfileComponent.mjs +8 -8
- package/apps/realworld/view/user/SettingsComponent.mjs +4 -4
- package/apps/realworld/view/user/SignUpComponent.mjs +4 -4
- package/apps/realworld2/view/FooterComponent.mjs +1 -1
- package/apps/realworld2/view/HomeContainer.mjs +3 -3
- package/apps/realworld2/view/article/DetailsContainer.mjs +1 -1
- package/apps/realworld2/view/article/PreviewComponent.mjs +7 -7
- package/apps/realworld2/view/article/TagListComponent.mjs +2 -2
- package/apps/realworld2/view/user/ProfileContainer.mjs +1 -1
- package/apps/route/view/center/CardAdministration.mjs +2 -2
- package/apps/route/view/center/CardAdministrationDenied.mjs +1 -1
- package/apps/route/view/center/CardContact.mjs +2 -2
- package/apps/route/view/center/CardHome.mjs +1 -1
- package/apps/route/view/center/CardSection1.mjs +1 -1
- package/apps/route/view/center/CardSection2.mjs +1 -1
- package/apps/sharedcovid/view/AttributionComponent.mjs +1 -1
- package/apps/sharedcovid/view/HeaderContainer.mjs +6 -6
- package/apps/sharedcovid/view/MainContainerController.mjs +5 -5
- package/apps/sharedcovid/view/TableContainerController.mjs +1 -1
- package/apps/sharedcovid/view/country/Gallery.mjs +13 -13
- package/apps/sharedcovid/view/country/Helix.mjs +13 -13
- package/apps/sharedcovid/view/country/HistoricalDataTable.mjs +1 -1
- package/apps/shareddialog/childapps/shareddialog2/view/MainContainer.mjs +1 -1
- package/apps/shareddialog/view/MainContainer.mjs +1 -1
- package/buildScripts/createApp.mjs +2 -2
- package/examples/table/cellEditing/MainContainer.mjs +1 -1
- package/examples/table/container/MainContainer.mjs +3 -3
- package/examples/table/nestedRecordFields/Viewport.mjs +6 -6
- package/examples/tableFiltering/MainContainer.mjs +1 -1
- package/examples/tablePerformance/MainContainer.mjs +1 -1
- package/examples/tablePerformance/MainContainer2.mjs +1 -1
- package/examples/tablePerformance/MainContainer3.mjs +2 -2
- package/examples/tableStore/MainContainer.mjs +2 -2
- package/learn/Glossary.md +261 -0
- package/learn/UsingTheseTopics.md +2 -2
- package/learn/benefits/ConfigSystem.md +538 -28
- package/learn/benefits/Effort.md +47 -2
- package/learn/benefits/Features.md +50 -32
- package/learn/benefits/FormsEngine.md +68 -38
- package/learn/benefits/MultiWindow.md +33 -7
- package/learn/benefits/OffTheMainThread.md +2 -2
- package/learn/benefits/Quick.md +45 -12
- package/learn/benefits/RPCLayer.md +75 -0
- package/learn/benefits/Speed.md +16 -11
- package/learn/gettingstarted/ComponentModels.md +4 -4
- package/learn/gettingstarted/Config.md +6 -6
- package/learn/gettingstarted/DescribingTheUI.md +4 -4
- package/learn/gettingstarted/Events.md +6 -6
- package/learn/gettingstarted/Extending.md +4 -4
- package/learn/gettingstarted/References.md +6 -6
- package/learn/gettingstarted/Workspaces.md +6 -6
- package/learn/guides/ApplicationBootstrap.md +26 -26
- package/learn/guides/ComponentsAndContainers.md +12 -12
- package/learn/guides/ConfigSystemDeepDive.md +280 -0
- package/learn/guides/CustomComponents.md +2 -2
- package/learn/guides/DeclarativeComponentTreesVsImperativeVdom.md +17 -17
- package/learn/guides/InstanceLifecycle.md +295 -1
- package/learn/guides/MainThreadAddons.md +475 -0
- package/learn/guides/PortalApp.md +2 -2
- package/learn/guides/StateProviders.md +12 -12
- package/learn/guides/WorkingWithVDom.md +14 -14
- package/learn/guides/events/CustomEvents.md +16 -16
- package/learn/guides/events/DomEvents.md +12 -12
- package/learn/javascript/ClassFeatures.md +3 -2
- package/learn/javascript/Classes.md +8 -8
- package/learn/javascript/NewNode.md +4 -4
- package/learn/javascript/Overrides.md +8 -8
- package/learn/javascript/Super.md +10 -8
- package/learn/tree.json +52 -51
- package/learn/tutorials/Earthquakes.md +54 -57
- package/learn/tutorials/TodoList.md +4 -4
- package/package.json +2 -2
- package/resources/scss/src/apps/portal/learn/ContentComponent.scss +12 -0
- package/resources/scss/src/table/{View.scss → Body.scss} +1 -1
- package/resources/scss/src/table/plugin/CellEditing.scss +1 -1
- package/resources/scss/theme-dark/table/{View.scss → Body.scss} +1 -1
- package/resources/scss/theme-light/table/{View.scss → Body.scss} +1 -1
- package/resources/scss/theme-neo-light/Global.scss +1 -2
- package/resources/scss/theme-neo-light/table/{View.scss → Body.scss} +1 -1
- package/src/DefaultConfig.mjs +2 -2
- package/src/Main.mjs +8 -7
- package/src/Neo.mjs +16 -2
- package/src/button/Base.mjs +2 -2
- package/src/calendar/view/SettingsContainer.mjs +2 -2
- package/src/calendar/view/YearComponent.mjs +9 -9
- package/src/calendar/view/calendars/ColorsList.mjs +1 -1
- package/src/calendar/view/calendars/List.mjs +1 -1
- package/src/calendar/view/month/Component.mjs +15 -15
- package/src/calendar/view/week/Component.mjs +12 -12
- package/src/calendar/view/week/EventDragZone.mjs +4 -4
- package/src/calendar/view/week/TimeAxisComponent.mjs +3 -3
- package/src/component/Base.mjs +17 -2
- package/src/component/Carousel.mjs +2 -2
- package/src/component/Chip.mjs +3 -3
- package/src/component/Circle.mjs +2 -2
- package/src/component/DateSelector.mjs +8 -8
- package/src/component/Helix.mjs +1 -1
- package/src/component/Label.mjs +3 -18
- package/src/component/Legend.mjs +3 -3
- package/src/component/MagicMoveText.mjs +6 -14
- package/src/component/Process.mjs +3 -3
- package/src/component/Progress.mjs +1 -1
- package/src/component/StatusBadge.mjs +2 -2
- package/src/component/Timer.mjs +2 -2
- package/src/component/Toast.mjs +5 -3
- package/src/container/AccordionItem.mjs +2 -2
- package/src/container/Base.mjs +1 -1
- package/src/core/Base.mjs +77 -14
- package/src/core/Util.mjs +14 -2
- package/src/date/DayViewComponent.mjs +2 -2
- package/src/date/SelectorContainer.mjs +1 -1
- package/src/draggable/grid/header/toolbar/SortZone.mjs +21 -21
- package/src/draggable/table/header/toolbar/SortZone.mjs +1 -1
- package/src/form/field/CheckBox.mjs +4 -4
- package/src/form/field/FileUpload.mjs +25 -39
- package/src/form/field/Range.mjs +1 -1
- package/src/form/field/Text.mjs +3 -3
- package/src/form/field/TextArea.mjs +2 -3
- package/src/grid/Body.mjs +8 -5
- package/src/grid/_export.mjs +1 -1
- package/src/list/Color.mjs +2 -2
- package/src/main/DeltaUpdates.mjs +157 -98
- package/src/main/addon/AmCharts.mjs +61 -84
- package/src/main/addon/Base.mjs +161 -42
- package/src/main/addon/GoogleMaps.mjs +9 -16
- package/src/main/addon/HighlightJS.mjs +2 -13
- package/src/main/addon/IntersectionObserver.mjs +21 -21
- package/src/main/addon/MonacoEditor.mjs +32 -64
- package/src/manager/ClassHierarchy.mjs +114 -0
- package/src/menu/List.mjs +1 -1
- package/src/plugin/Popover.mjs +2 -2
- package/src/sitemap/Component.mjs +1 -1
- package/src/table/{View.mjs → Body.mjs} +25 -22
- package/src/table/Container.mjs +43 -43
- package/src/table/_export.mjs +2 -2
- package/src/table/plugin/CellEditing.mjs +19 -19
- package/src/tooltip/Base.mjs +1 -6
- package/src/tree/Accordion.mjs +3 -3
- package/src/vdom/Helper.mjs +19 -22
- package/src/worker/App.mjs +1 -2
- package/src/worker/Base.mjs +7 -5
- package/src/worker/Canvas.mjs +2 -3
- package/src/worker/Data.mjs +5 -7
- package/src/worker/Task.mjs +2 -3
- package/src/worker/VDom.mjs +3 -4
- package/src/worker/mixin/RemoteMethodAccess.mjs +5 -2
- package/learn/guides/MainThreadAddonExample.md +0 -15
- package/learn/guides/MainThreadAddonIntro.md +0 -44
@@ -36,7 +36,7 @@ class TagListComponent extends Component {
|
|
36
36
|
_vdom:
|
37
37
|
{cn: [
|
38
38
|
{cls: ['sidebar'], cn: [
|
39
|
-
{tag: 'p',
|
39
|
+
{tag: 'p', text: 'Popular Tags'},
|
40
40
|
{cls: ['tag-list']}
|
41
41
|
]}
|
42
42
|
]}
|
@@ -96,7 +96,7 @@ class TagListComponent extends Component {
|
|
96
96
|
tag : 'a',
|
97
97
|
cls : ['tag-pill', 'tag-default'],
|
98
98
|
href: '',
|
99
|
-
|
99
|
+
text: item,
|
100
100
|
id : me.getTagVdomId(item)
|
101
101
|
});
|
102
102
|
});
|
@@ -69,7 +69,7 @@ class ProfileComponent extends Component {
|
|
69
69
|
]},
|
70
70
|
{tag: 'a', cls: ['btn', 'btn-sm', 'btn-outline-secondary', 'action-btn'], flag: 'edit-profile', href: '#/settings', removeDom: true, cn: [
|
71
71
|
{tag: 'i', cls: ['ion-gear-a']},
|
72
|
-
{vtype: 'text',
|
72
|
+
{vtype: 'text', text: ' Edit Profile Settings'}
|
73
73
|
]}
|
74
74
|
]}
|
75
75
|
]}
|
@@ -81,10 +81,10 @@ class ProfileComponent extends Component {
|
|
81
81
|
{cls: ['articles-toggle'], cn: [
|
82
82
|
{tag: 'ul', cls: ['nav', 'nav-pills', 'outline-active'], flag: 'feed-header', cn: [
|
83
83
|
{tag: 'li', cls: ['nav-item'], cn: [
|
84
|
-
{tag: 'a', cls: ['nav-link', 'prevent-click', 'active'], href: '',
|
84
|
+
{tag: 'a', cls: ['nav-link', 'prevent-click', 'active'], href: '', text: 'My Articles'}
|
85
85
|
]},
|
86
86
|
{tag: 'li', cls: ['nav-item'], cn: [
|
87
|
-
{tag: 'a', cls: ['nav-link', 'prevent-click'], href: '',
|
87
|
+
{tag: 'a', cls: ['nav-link', 'prevent-click'], href: '', text: 'Favorited Articles'}
|
88
88
|
]}
|
89
89
|
]}
|
90
90
|
]}
|
@@ -170,7 +170,7 @@ class ProfileComponent extends Component {
|
|
170
170
|
*/
|
171
171
|
afterSetBio(value, oldValue) {
|
172
172
|
if (value) {
|
173
|
-
VDomUtil.getByFlag(this.vdom, 'bio').
|
173
|
+
VDomUtil.getByFlag(this.vdom, 'bio').text = value;
|
174
174
|
this.update();
|
175
175
|
}
|
176
176
|
}
|
@@ -190,7 +190,7 @@ class ProfileComponent extends Component {
|
|
190
190
|
NeoArray.add(node.cls, value ? 'btn-secondary' : 'btn-outline-secondary');
|
191
191
|
|
192
192
|
node.cn[0].cls = [value ? 'ion-minus-round' : 'ion-plus-round'];
|
193
|
-
node.cn[1].
|
193
|
+
node.cn[1].text = value ? ' Unfollow ' : ' Follow ';
|
194
194
|
this.update();
|
195
195
|
}
|
196
196
|
}
|
@@ -231,8 +231,8 @@ class ProfileComponent extends Component {
|
|
231
231
|
afterSetUsername(value, oldValue) {
|
232
232
|
let vdom = this.vdom;
|
233
233
|
|
234
|
-
VDomUtil.getByFlag(vdom, 'following').cn[2].
|
235
|
-
VDomUtil.getByFlag(vdom, 'username').
|
234
|
+
VDomUtil.getByFlag(vdom, 'following').cn[2].text = value;
|
235
|
+
VDomUtil.getByFlag(vdom, 'username').text = value;
|
236
236
|
this.update();
|
237
237
|
}
|
238
238
|
|
@@ -273,7 +273,7 @@ class ProfileComponent extends Component {
|
|
273
273
|
params = {};
|
274
274
|
|
275
275
|
if (!el.vdom.cls.includes('disabled')) {
|
276
|
-
switch (el.vdom.
|
276
|
+
switch (el.vdom.text) {
|
277
277
|
case 'Favorited Articles':
|
278
278
|
params = {
|
279
279
|
favorited: me.username
|
@@ -44,7 +44,7 @@ class SettingsComponent extends Component {
|
|
44
44
|
{cls: ['container', 'page'], cn: [
|
45
45
|
{cls: ['row'], cn: [
|
46
46
|
{cls: ['col-md-6', 'offset-md-3', 'col-xs-12'], cn: [
|
47
|
-
{tag: 'h1', cls: ['text-xs-center'],
|
47
|
+
{tag: 'h1', cls: ['text-xs-center'], text: 'Your Settings'},
|
48
48
|
{tag: 'ul', cls: ['error-messages'], flag: 'errors', removeDom: true},
|
49
49
|
{tag: 'form', cn: [
|
50
50
|
{tag: 'fieldset', cn: [
|
@@ -63,11 +63,11 @@ class SettingsComponent extends Component {
|
|
63
63
|
{tag: 'fieldset', cls: ['form-group'], cn: [
|
64
64
|
{tag: 'input', cls: ['form-control', 'form-control-lg'], flag: 'password', placeholder: 'Password', type: 'password'}
|
65
65
|
]},
|
66
|
-
{tag: 'button', cls: ['btn', 'btn-lg', 'btn-primary', 'pull-xs-right'],
|
66
|
+
{tag: 'button', cls: ['btn', 'btn-lg', 'btn-primary', 'pull-xs-right'], text: 'Update Settings'}
|
67
67
|
]}
|
68
68
|
]},
|
69
69
|
{tag: 'hr'},
|
70
|
-
{tag: 'button', cls: ['btn', 'btn-outline-danger'],
|
70
|
+
{tag: 'button', cls: ['btn', 'btn-outline-danger'], text: 'Or click here to logout.'}
|
71
71
|
]}
|
72
72
|
]}
|
73
73
|
]}
|
@@ -133,7 +133,7 @@ class SettingsComponent extends Component {
|
|
133
133
|
Object.entries(value).forEach(([key, value]) => {
|
134
134
|
list.cn.push({
|
135
135
|
tag : 'li',
|
136
|
-
|
136
|
+
text: key + ' ' + value.join(' and ')
|
137
137
|
});
|
138
138
|
});
|
139
139
|
|
@@ -93,7 +93,7 @@ class SignUpComponent extends Component {
|
|
93
93
|
Object.entries(value || {}).forEach(([key, value]) => {
|
94
94
|
list.cn.push({
|
95
95
|
tag : 'li',
|
96
|
-
|
96
|
+
text: key + ' ' + value.join(' and ')
|
97
97
|
});
|
98
98
|
});
|
99
99
|
|
@@ -141,16 +141,16 @@ class SignUpComponent extends Component {
|
|
141
141
|
contentDiv = me.vdom.cn[0].cn[0].cn[0];
|
142
142
|
|
143
143
|
// vdom bulk update
|
144
|
-
contentDiv.cn[0].
|
144
|
+
contentDiv.cn[0].text = isSignup ? 'Sign up' : 'Sign in';
|
145
145
|
|
146
146
|
contentDiv.cn[1].cn[0].href = isSignup ? '#/login' : '#/register';
|
147
|
-
contentDiv.cn[1].cn[0].
|
147
|
+
contentDiv.cn[1].cn[0].text = isSignup ? 'Have an account?' : 'Need an account?';
|
148
148
|
|
149
149
|
// remove the username fieldset if needed
|
150
150
|
contentDiv.cn[3].cn[0].cn[0].removeDom = !isSignup;
|
151
151
|
|
152
152
|
// submit button text
|
153
|
-
contentDiv.cn[3].cn[0].cn[3].
|
153
|
+
contentDiv.cn[3].cn[0].cn[3].text = isSignup ? 'Sign up' : 'Sign in';
|
154
154
|
|
155
155
|
me.update();
|
156
156
|
}
|
@@ -38,10 +38,10 @@ class HomeContainer extends Container {
|
|
38
38
|
cn : [{
|
39
39
|
tag : 'h1',
|
40
40
|
cls : ['logo-font'],
|
41
|
-
|
41
|
+
text: 'conduit v2'
|
42
42
|
}, {
|
43
43
|
tag : 'p',
|
44
|
-
|
44
|
+
text: 'A place to share your knowledge.'
|
45
45
|
}]
|
46
46
|
}]
|
47
47
|
}
|
@@ -60,7 +60,7 @@ class HomeContainer extends Container {
|
|
60
60
|
cls : ['neo-examples-tab-component'],
|
61
61
|
header: {iconCls: 'fa fa-user-ninja', text: 'Your Feed'},
|
62
62
|
style : {padding: '20px'},
|
63
|
-
vdom : {
|
63
|
+
vdom : {text: 'todo'}
|
64
64
|
}, {
|
65
65
|
module: PreviewList,
|
66
66
|
header: {iconCls: 'fa fa-globe-europe', text: 'Global Feed'}
|
@@ -85,7 +85,7 @@ class PreviewComponent extends Component {
|
|
85
85
|
cn : [
|
86
86
|
{tag: 'h1', flag: 'title'},
|
87
87
|
{tag: 'p', flag: 'description'},
|
88
|
-
{tag: 'span',
|
88
|
+
{tag: 'span', text: 'Read more...'}
|
89
89
|
]
|
90
90
|
}]
|
91
91
|
}
|
@@ -120,7 +120,7 @@ class PreviewComponent extends Component {
|
|
120
120
|
|
121
121
|
// todo: disabled until the new profile view is ready
|
122
122
|
//node.href = href;
|
123
|
-
node.
|
123
|
+
node.text = value;
|
124
124
|
|
125
125
|
//VDomUtil.getByFlag(vdom, 'userImageLink').href = href;
|
126
126
|
|
@@ -134,7 +134,7 @@ class PreviewComponent extends Component {
|
|
134
134
|
* @protected
|
135
135
|
*/
|
136
136
|
afterSetCreatedAt(value, oldValue) {
|
137
|
-
VDomUtil.getByFlag(this.vdom, 'createdAt').
|
137
|
+
VDomUtil.getByFlag(this.vdom, 'createdAt').text = new Intl.DateTimeFormat('en-US', {
|
138
138
|
day : 'numeric',
|
139
139
|
month: 'long',
|
140
140
|
year : 'numeric'
|
@@ -150,7 +150,7 @@ class PreviewComponent extends Component {
|
|
150
150
|
* @protected
|
151
151
|
*/
|
152
152
|
afterSetDescription(value, oldValue) {
|
153
|
-
VDomUtil.getByFlag(this.vdom, 'description').
|
153
|
+
VDomUtil.getByFlag(this.vdom, 'description').text = value;
|
154
154
|
this.update();
|
155
155
|
}
|
156
156
|
|
@@ -182,7 +182,7 @@ class PreviewComponent extends Component {
|
|
182
182
|
* @protected
|
183
183
|
*/
|
184
184
|
afterSetFavoritesCount(value, oldValue) {
|
185
|
-
VDomUtil.getByFlag(this.vdom, 'favoritesCount').
|
185
|
+
VDomUtil.getByFlag(this.vdom, 'favoritesCount').text = ' ' + value;
|
186
186
|
this.update();
|
187
187
|
}
|
188
188
|
|
@@ -225,7 +225,7 @@ class PreviewComponent extends Component {
|
|
225
225
|
tagList.cn.push({
|
226
226
|
tag : 'li',
|
227
227
|
cls : ['tag-default', 'tag-pill', 'tag-outline'],
|
228
|
-
|
228
|
+
text: item
|
229
229
|
})
|
230
230
|
});
|
231
231
|
|
@@ -242,7 +242,7 @@ class PreviewComponent extends Component {
|
|
242
242
|
* @protected
|
243
243
|
*/
|
244
244
|
afterSetTitle(value, oldValue) {
|
245
|
-
VDomUtil.getByFlag(this.vdom, 'title').
|
245
|
+
VDomUtil.getByFlag(this.vdom, 'title').text = value;
|
246
246
|
this.update();
|
247
247
|
}
|
248
248
|
|
@@ -38,7 +38,7 @@ class TagListComponent extends Component {
|
|
38
38
|
cls: ['sidebar'],
|
39
39
|
cn : [{
|
40
40
|
tag : 'p',
|
41
|
-
|
41
|
+
text: 'Popular Tags'
|
42
42
|
}, {
|
43
43
|
cls: ['tag-list']
|
44
44
|
}]
|
@@ -100,7 +100,7 @@ class TagListComponent extends Component {
|
|
100
100
|
tag : 'a',
|
101
101
|
cls : ['tag-pill', 'tag-default'],
|
102
102
|
href: '',
|
103
|
-
|
103
|
+
text: item,
|
104
104
|
id : me.getTagVdomId(item)
|
105
105
|
});
|
106
106
|
});
|
@@ -18,13 +18,13 @@ class CardAdministration extends Container {
|
|
18
18
|
|
19
19
|
vdom: {
|
20
20
|
tag : 'h1',
|
21
|
-
|
21
|
+
text: 'Access Granted.'
|
22
22
|
}
|
23
23
|
}
|
24
24
|
|
25
25
|
|
26
26
|
afterSetUsername(value, oldValue) {
|
27
|
-
this.vdom.
|
27
|
+
this.vdom.text = `Access Granted to ${this.username}.`;
|
28
28
|
}
|
29
29
|
}
|
30
30
|
|
@@ -16,8 +16,8 @@ class CardContact extends Container {
|
|
16
16
|
|
17
17
|
items: [
|
18
18
|
{ cls : ['route_card_simple_page'], vdom: { cn: [
|
19
|
-
{tag: 'h1',
|
20
|
-
{tag: 'a', href: 'https://github.com/neomjs/neo', target: '_blank',
|
19
|
+
{tag: 'h1', text: 'Contact' },
|
20
|
+
{tag: 'a', href: 'https://github.com/neomjs/neo', target: '_blank', text: 'please visit https://github.com/neomjs/neo'}
|
21
21
|
] } }
|
22
22
|
]
|
23
23
|
}
|
@@ -21,7 +21,7 @@ class AttributionComponent extends Component {
|
|
21
21
|
*/
|
22
22
|
vdom:
|
23
23
|
{style: {margin: '20px'}, cn: [
|
24
|
-
{tag: 'h2',
|
24
|
+
{tag: 'h2', text: 'Attribution'},
|
25
25
|
{tag: 'ul', cn: [
|
26
26
|
{tag: 'li', html: 'The logos were created by <a target="_blank" href="https://www.driefmeier.com/">Sebastian Driefmeier</a>. Thank you!'},
|
27
27
|
{tag: 'li', html: ['The logos are based on the image from <a target="_blank" href="https://phil.cdc.gov/Details.aspx?pid=23312">CDC Public Health Image Library (PHIL)</a>,</br>',
|
@@ -56,7 +56,7 @@ class HeaderContainer extends Container {
|
|
56
56
|
cls : ['covid-numberbox'],
|
57
57
|
vdom: {
|
58
58
|
cn: [
|
59
|
-
{cls: ['covid-numberbox-title', 'cases'],
|
59
|
+
{cls: ['covid-numberbox-title', 'cases'], text:'Cases'},
|
60
60
|
{cls: ['covid-numberbox-number', 'cases']}
|
61
61
|
]
|
62
62
|
}
|
@@ -64,7 +64,7 @@ class HeaderContainer extends Container {
|
|
64
64
|
cls : ['covid-numberbox'],
|
65
65
|
vdom: {
|
66
66
|
cn: [
|
67
|
-
{cls: ['covid-numberbox-title', 'active'],
|
67
|
+
{cls: ['covid-numberbox-title', 'active'], text:'Active'},
|
68
68
|
{cls: ['covid-numberbox-number', 'active']}
|
69
69
|
]
|
70
70
|
}
|
@@ -72,7 +72,7 @@ class HeaderContainer extends Container {
|
|
72
72
|
cls : ['covid-numberbox'],
|
73
73
|
vdom: {
|
74
74
|
cn: [
|
75
|
-
{cls: ['covid-numberbox-title', 'recovered'],
|
75
|
+
{cls: ['covid-numberbox-title', 'recovered'], text:'Recovered'},
|
76
76
|
{cls: ['covid-numberbox-number', 'recovered']}
|
77
77
|
]
|
78
78
|
}
|
@@ -80,7 +80,7 @@ class HeaderContainer extends Container {
|
|
80
80
|
cls : ['covid-numberbox'],
|
81
81
|
vdom: {
|
82
82
|
cn: [
|
83
|
-
{cls: ['covid-numberbox-title', 'deaths'],
|
83
|
+
{cls: ['covid-numberbox-title', 'deaths'], text:'Deaths'},
|
84
84
|
{cls: ['covid-numberbox-number', 'deaths']}
|
85
85
|
]
|
86
86
|
}
|
@@ -97,7 +97,7 @@ class HeaderContainer extends Container {
|
|
97
97
|
'data-show-count': 'true',
|
98
98
|
'data-size' : 'large',
|
99
99
|
href : 'https://github.com/neomjs/neo',
|
100
|
-
|
100
|
+
text : 'Star'
|
101
101
|
}]
|
102
102
|
}
|
103
103
|
}, {
|
@@ -111,7 +111,7 @@ class HeaderContainer extends Container {
|
|
111
111
|
'data-icon' : 'octicon-heart',
|
112
112
|
'data-size' : 'large',
|
113
113
|
href : 'https://github.com/sponsors/tobiu',
|
114
|
-
|
114
|
+
text : 'Sponsor'
|
115
115
|
}]
|
116
116
|
}
|
117
117
|
}]
|
@@ -139,10 +139,10 @@ class MainContainerController extends ComponentController {
|
|
139
139
|
|
140
140
|
me.summaryData = data;
|
141
141
|
|
142
|
-
container.items[0].vdom.cn[1].
|
143
|
-
container.items[1].vdom.cn[1].
|
144
|
-
container.items[2].vdom.cn[1].
|
145
|
-
container.items[3].vdom.cn[1].
|
142
|
+
container.items[0].vdom.cn[1].text = Util.formatNumber({value: data.cases});
|
143
|
+
container.items[1].vdom.cn[1].text = Util.formatNumber({value: data.active});
|
144
|
+
container.items[2].vdom.cn[1].text = Util.formatNumber({value: data.recovered});
|
145
|
+
container.items[3].vdom.cn[1].text = Util.formatNumber({value: data.deaths});
|
146
146
|
|
147
147
|
container.updateDepth = 2;
|
148
148
|
container.update();
|
@@ -150,7 +150,7 @@ class MainContainerController extends ComponentController {
|
|
150
150
|
container = me.getReference('last-update');
|
151
151
|
vdom = container.vdom;
|
152
152
|
|
153
|
-
vdom.
|
153
|
+
vdom.text = 'Last Update: ' + new Intl.DateTimeFormat('default', {
|
154
154
|
hour : 'numeric',
|
155
155
|
minute: 'numeric',
|
156
156
|
second: 'numeric'
|
@@ -225,7 +225,7 @@ class TableContainerController extends ComponentController {
|
|
225
225
|
// removed optional chaining for now, see: https://github.com/neomjs/neo/issues/467
|
226
226
|
me.loadHistoricalData(record?.countryInfo?.iso2 || 'all');
|
227
227
|
|
228
|
-
me.getReference('historical-data-label').
|
228
|
+
me.getReference('historical-data-label').text = 'Historical Data (' + (record?.country || 'World') + ')';
|
229
229
|
}
|
230
230
|
|
231
231
|
/**
|
@@ -45,24 +45,24 @@ class CountryGallery extends Gallery {
|
|
45
45
|
]},
|
46
46
|
{tag: 'table', cls: ['neo-content-table'], cn: [
|
47
47
|
{tag: 'tr', cn: [
|
48
|
-
{tag: 'td',
|
48
|
+
{tag: 'td', text: 'Cases'},
|
49
49
|
{tag: 'td', cls: ['neo-align-right']},
|
50
50
|
{tag: 'td', style: {width: '100%'}},
|
51
|
-
{tag: 'td',
|
51
|
+
{tag: 'td', text: 'Cases today'},
|
52
52
|
{tag: 'td', cls: ['neo-align-right']}
|
53
53
|
]},
|
54
54
|
{tag: 'tr', cn: [
|
55
|
-
{tag: 'td',
|
55
|
+
{tag: 'td', text: 'Deaths'},
|
56
56
|
{tag: 'td', cls: ['neo-align-right', 'neo-content-deaths']},
|
57
57
|
{tag: 'td', style: {width: '100%'}},
|
58
|
-
{tag: 'td',
|
58
|
+
{tag: 'td', text: 'Deaths today'},
|
59
59
|
{tag: 'td', cls: ['neo-align-right', 'neo-content-deaths']}
|
60
60
|
]},
|
61
61
|
{tag: 'tr', cn: [
|
62
|
-
{tag: 'td',
|
62
|
+
{tag: 'td', text: 'Recovered'},
|
63
63
|
{tag: 'td', cls: ['neo-align-right', 'neo-content-recovered']},
|
64
64
|
{tag: 'td', style: {width: '100%'}},
|
65
|
-
{tag: 'td',
|
65
|
+
{tag: 'td', text: 'Critical'},
|
66
66
|
{tag: 'td', cls: ['neo-align-right', 'neo-content-critical']}
|
67
67
|
]}
|
68
68
|
]}
|
@@ -127,15 +127,15 @@ class CountryGallery extends Gallery {
|
|
127
127
|
firstChild.style.width = me.itemWidth + 'px';
|
128
128
|
|
129
129
|
firstChild.cn[0].cn[0].src = Util.getCountryFlagUrl(record.country);
|
130
|
-
firstChild.cn[0].cn[1].
|
130
|
+
firstChild.cn[0].cn[1].text = record.country;
|
131
131
|
|
132
|
-
table.cn[0].cn[1].
|
133
|
-
table.cn[1].cn[1].
|
134
|
-
table.cn[2].cn[1].
|
132
|
+
table.cn[0].cn[1].text = fN({value: record.cases});
|
133
|
+
table.cn[1].cn[1].text = fN({value: record.deaths});
|
134
|
+
table.cn[2].cn[1].text = fN({value: record.recovered});
|
135
135
|
|
136
|
-
table.cn[0].cn[4].
|
137
|
-
table.cn[1].cn[4].
|
138
|
-
table.cn[2].cn[4].
|
136
|
+
table.cn[0].cn[4].text = fN({value: record.todayCases});
|
137
|
+
table.cn[1].cn[4].text = fN({value: record.todayDeaths});
|
138
|
+
table.cn[2].cn[4].text = fN({value: record.critical});
|
139
139
|
|
140
140
|
return vdomItem;
|
141
141
|
}
|
@@ -45,24 +45,24 @@ class CountryHelix extends Helix {
|
|
45
45
|
]},
|
46
46
|
{tag: 'table', cls: ['neo-content-table'], cn: [
|
47
47
|
{tag: 'tr', cn: [
|
48
|
-
{tag: 'td',
|
48
|
+
{tag: 'td', text: 'Cases'},
|
49
49
|
{tag: 'td', cls: ['neo-align-right']},
|
50
50
|
{tag: 'td', style: {width: '100%'}},
|
51
|
-
{tag: 'td',
|
51
|
+
{tag: 'td', text: 'Cases today'},
|
52
52
|
{tag: 'td', cls: ['neo-align-right']}
|
53
53
|
]},
|
54
54
|
{tag: 'tr', cn: [
|
55
|
-
{tag: 'td',
|
55
|
+
{tag: 'td', text: 'Deaths'},
|
56
56
|
{tag: 'td', cls: ['neo-align-right', 'neo-content-deaths']},
|
57
57
|
{tag: 'td', style: {width: '100%'}},
|
58
|
-
{tag: 'td',
|
58
|
+
{tag: 'td', text: 'Deaths today'},
|
59
59
|
{tag: 'td', cls: ['neo-align-right', 'neo-content-deaths']}
|
60
60
|
]},
|
61
61
|
{tag: 'tr', cn: [
|
62
|
-
{tag: 'td',
|
62
|
+
{tag: 'td', text: 'Recovered'},
|
63
63
|
{tag: 'td', cls: ['neo-align-right', 'neo-content-recovered']},
|
64
64
|
{tag: 'td', style: {width: '100%'}},
|
65
|
-
{tag: 'td',
|
65
|
+
{tag: 'td', text: 'Critical'},
|
66
66
|
{tag: 'td', cls: ['neo-align-right', 'neo-content-critical']}
|
67
67
|
]}
|
68
68
|
]}
|
@@ -138,15 +138,15 @@ class CountryHelix extends Helix {
|
|
138
138
|
vdomItem.id = me.getItemVnodeId(record[me.keyProperty]);
|
139
139
|
|
140
140
|
firstChild.cn[0].cn[0].src = Util.getCountryFlagUrl(record.country);
|
141
|
-
firstChild.cn[0].cn[1].
|
141
|
+
firstChild.cn[0].cn[1].text = record.country;
|
142
142
|
|
143
|
-
table.cn[0].cn[1].
|
144
|
-
table.cn[1].cn[1].
|
145
|
-
table.cn[2].cn[1].
|
143
|
+
table.cn[0].cn[1].text = fN({value: record.cases});
|
144
|
+
table.cn[1].cn[1].text = fN({value: record.deaths});
|
145
|
+
table.cn[2].cn[1].text = fN({value: record.recovered});
|
146
146
|
|
147
|
-
table.cn[0].cn[4].
|
148
|
-
table.cn[1].cn[4].
|
149
|
-
table.cn[2].cn[4].
|
147
|
+
table.cn[0].cn[4].text = fN({value: record.todayCases});
|
148
|
+
table.cn[1].cn[4].text = fN({value: record.todayDeaths});
|
149
|
+
table.cn[2].cn[4].text = fN({value: record.critical});
|
150
150
|
|
151
151
|
return vdomItem;
|
152
152
|
}
|
@@ -38,7 +38,7 @@ class HistoricalDataTable extends Container {
|
|
38
38
|
renderer : function(data) {
|
39
39
|
return {
|
40
40
|
cls : ['neo-date-column', 'neo-table-cell'],
|
41
|
-
|
41
|
+
text: new Intl.DateTimeFormat('default', {
|
42
42
|
day : 'numeric',
|
43
43
|
month: 'numeric',
|
44
44
|
year : 'numeric'
|
@@ -234,13 +234,13 @@ if (programOpts.info) {
|
|
234
234
|
" iconCls: 'fa fa-home',",
|
235
235
|
" text : 'Tab 1'",
|
236
236
|
" },",
|
237
|
-
"
|
237
|
+
" text: 'Welcome to your new Neo App.'",
|
238
238
|
" }, {",
|
239
239
|
" header: {",
|
240
240
|
" iconCls: 'fa fa-play-circle',",
|
241
241
|
" text : 'Tab 2'",
|
242
242
|
" },",
|
243
|
-
"
|
243
|
+
" text: 'Have fun creating something awesome!'",
|
244
244
|
" }]",
|
245
245
|
" }]",
|
246
246
|
" }",
|