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.
Files changed (188) hide show
  1. package/ServiceWorker.mjs +2 -2
  2. package/apps/colors/view/GridContainer.mjs +1 -1
  3. package/apps/covid/view/AttributionComponent.mjs +1 -1
  4. package/apps/covid/view/HeaderContainer.mjs +6 -6
  5. package/apps/covid/view/MainContainerController.mjs +5 -5
  6. package/apps/covid/view/TableContainerController.mjs +1 -1
  7. package/apps/covid/view/country/Gallery.mjs +13 -13
  8. package/apps/covid/view/country/Helix.mjs +13 -13
  9. package/apps/covid/view/country/HistoricalDataTable.mjs +1 -1
  10. package/apps/email/view/Viewport.mjs +2 -2
  11. package/apps/form/view/SideNavList.mjs +1 -1
  12. package/apps/portal/index.html +1 -1
  13. package/apps/portal/resources/data/examples_devmode.json +26 -27
  14. package/apps/portal/resources/data/examples_dist_dev.json +26 -27
  15. package/apps/portal/resources/data/examples_dist_esm.json +25 -26
  16. package/apps/portal/resources/data/examples_dist_prod.json +26 -27
  17. package/apps/portal/view/HeaderToolbar.mjs +3 -3
  18. package/apps/portal/view/about/Container.mjs +2 -2
  19. package/apps/portal/view/about/MemberContainer.mjs +3 -3
  20. package/apps/portal/view/blog/List.mjs +7 -7
  21. package/apps/portal/view/examples/List.mjs +4 -4
  22. package/apps/portal/view/home/ContentBox.mjs +2 -2
  23. package/apps/portal/view/home/FeatureSection.mjs +3 -3
  24. package/apps/portal/view/home/FooterContainer.mjs +7 -7
  25. package/apps/portal/view/home/parts/AfterMath.mjs +3 -3
  26. package/apps/portal/view/home/parts/MainNeo.mjs +3 -3
  27. package/apps/portal/view/home/parts/References.mjs +6 -6
  28. package/apps/portal/view/learn/ContentComponent.mjs +102 -111
  29. package/apps/portal/view/learn/PageSectionsContainer.mjs +1 -1
  30. package/apps/portal/view/learn/PageSectionsList.mjs +2 -2
  31. package/apps/portal/view/services/Component.mjs +16 -16
  32. package/apps/realworld/view/FooterComponent.mjs +1 -1
  33. package/apps/realworld/view/HeaderComponent.mjs +8 -8
  34. package/apps/realworld/view/HomeComponent.mjs +6 -6
  35. package/apps/realworld/view/article/CommentComponent.mjs +4 -4
  36. package/apps/realworld/view/article/Component.mjs +14 -14
  37. package/apps/realworld/view/article/CreateCommentComponent.mjs +3 -3
  38. package/apps/realworld/view/article/CreateComponent.mjs +3 -3
  39. package/apps/realworld/view/article/PreviewComponent.mjs +1 -1
  40. package/apps/realworld/view/article/TagListComponent.mjs +2 -2
  41. package/apps/realworld/view/user/ProfileComponent.mjs +8 -8
  42. package/apps/realworld/view/user/SettingsComponent.mjs +4 -4
  43. package/apps/realworld/view/user/SignUpComponent.mjs +4 -4
  44. package/apps/realworld2/view/FooterComponent.mjs +1 -1
  45. package/apps/realworld2/view/HomeContainer.mjs +3 -3
  46. package/apps/realworld2/view/article/DetailsContainer.mjs +1 -1
  47. package/apps/realworld2/view/article/PreviewComponent.mjs +7 -7
  48. package/apps/realworld2/view/article/TagListComponent.mjs +2 -2
  49. package/apps/realworld2/view/user/ProfileContainer.mjs +1 -1
  50. package/apps/route/view/center/CardAdministration.mjs +2 -2
  51. package/apps/route/view/center/CardAdministrationDenied.mjs +1 -1
  52. package/apps/route/view/center/CardContact.mjs +2 -2
  53. package/apps/route/view/center/CardHome.mjs +1 -1
  54. package/apps/route/view/center/CardSection1.mjs +1 -1
  55. package/apps/route/view/center/CardSection2.mjs +1 -1
  56. package/apps/sharedcovid/view/AttributionComponent.mjs +1 -1
  57. package/apps/sharedcovid/view/HeaderContainer.mjs +6 -6
  58. package/apps/sharedcovid/view/MainContainerController.mjs +5 -5
  59. package/apps/sharedcovid/view/TableContainerController.mjs +1 -1
  60. package/apps/sharedcovid/view/country/Gallery.mjs +13 -13
  61. package/apps/sharedcovid/view/country/Helix.mjs +13 -13
  62. package/apps/sharedcovid/view/country/HistoricalDataTable.mjs +1 -1
  63. package/apps/shareddialog/childapps/shareddialog2/view/MainContainer.mjs +1 -1
  64. package/apps/shareddialog/view/MainContainer.mjs +1 -1
  65. package/buildScripts/createApp.mjs +2 -2
  66. package/examples/table/cellEditing/MainContainer.mjs +1 -1
  67. package/examples/table/container/MainContainer.mjs +3 -3
  68. package/examples/table/nestedRecordFields/Viewport.mjs +6 -6
  69. package/examples/tableFiltering/MainContainer.mjs +1 -1
  70. package/examples/tablePerformance/MainContainer.mjs +1 -1
  71. package/examples/tablePerformance/MainContainer2.mjs +1 -1
  72. package/examples/tablePerformance/MainContainer3.mjs +2 -2
  73. package/examples/tableStore/MainContainer.mjs +2 -2
  74. package/learn/Glossary.md +261 -0
  75. package/learn/UsingTheseTopics.md +2 -2
  76. package/learn/benefits/ConfigSystem.md +538 -28
  77. package/learn/benefits/Effort.md +47 -2
  78. package/learn/benefits/Features.md +50 -32
  79. package/learn/benefits/FormsEngine.md +68 -38
  80. package/learn/benefits/MultiWindow.md +33 -7
  81. package/learn/benefits/OffTheMainThread.md +2 -2
  82. package/learn/benefits/Quick.md +45 -12
  83. package/learn/benefits/RPCLayer.md +75 -0
  84. package/learn/benefits/Speed.md +16 -11
  85. package/learn/gettingstarted/ComponentModels.md +4 -4
  86. package/learn/gettingstarted/Config.md +6 -6
  87. package/learn/gettingstarted/DescribingTheUI.md +4 -4
  88. package/learn/gettingstarted/Events.md +6 -6
  89. package/learn/gettingstarted/Extending.md +4 -4
  90. package/learn/gettingstarted/References.md +6 -6
  91. package/learn/gettingstarted/Workspaces.md +6 -6
  92. package/learn/guides/ApplicationBootstrap.md +26 -26
  93. package/learn/guides/ComponentsAndContainers.md +12 -12
  94. package/learn/guides/ConfigSystemDeepDive.md +280 -0
  95. package/learn/guides/CustomComponents.md +2 -2
  96. package/learn/guides/DeclarativeComponentTreesVsImperativeVdom.md +17 -17
  97. package/learn/guides/InstanceLifecycle.md +295 -1
  98. package/learn/guides/MainThreadAddons.md +475 -0
  99. package/learn/guides/PortalApp.md +2 -2
  100. package/learn/guides/StateProviders.md +12 -12
  101. package/learn/guides/WorkingWithVDom.md +14 -14
  102. package/learn/guides/events/CustomEvents.md +16 -16
  103. package/learn/guides/events/DomEvents.md +12 -12
  104. package/learn/javascript/ClassFeatures.md +3 -2
  105. package/learn/javascript/Classes.md +8 -8
  106. package/learn/javascript/NewNode.md +4 -4
  107. package/learn/javascript/Overrides.md +8 -8
  108. package/learn/javascript/Super.md +10 -8
  109. package/learn/tree.json +52 -51
  110. package/learn/tutorials/Earthquakes.md +54 -57
  111. package/learn/tutorials/TodoList.md +4 -4
  112. package/package.json +2 -2
  113. package/resources/scss/src/apps/portal/learn/ContentComponent.scss +12 -0
  114. package/resources/scss/src/table/{View.scss → Body.scss} +1 -1
  115. package/resources/scss/src/table/plugin/CellEditing.scss +1 -1
  116. package/resources/scss/theme-dark/table/{View.scss → Body.scss} +1 -1
  117. package/resources/scss/theme-light/table/{View.scss → Body.scss} +1 -1
  118. package/resources/scss/theme-neo-light/Global.scss +1 -2
  119. package/resources/scss/theme-neo-light/table/{View.scss → Body.scss} +1 -1
  120. package/src/DefaultConfig.mjs +2 -2
  121. package/src/Main.mjs +8 -7
  122. package/src/Neo.mjs +16 -2
  123. package/src/button/Base.mjs +2 -2
  124. package/src/calendar/view/SettingsContainer.mjs +2 -2
  125. package/src/calendar/view/YearComponent.mjs +9 -9
  126. package/src/calendar/view/calendars/ColorsList.mjs +1 -1
  127. package/src/calendar/view/calendars/List.mjs +1 -1
  128. package/src/calendar/view/month/Component.mjs +15 -15
  129. package/src/calendar/view/week/Component.mjs +12 -12
  130. package/src/calendar/view/week/EventDragZone.mjs +4 -4
  131. package/src/calendar/view/week/TimeAxisComponent.mjs +3 -3
  132. package/src/component/Base.mjs +17 -2
  133. package/src/component/Carousel.mjs +2 -2
  134. package/src/component/Chip.mjs +3 -3
  135. package/src/component/Circle.mjs +2 -2
  136. package/src/component/DateSelector.mjs +8 -8
  137. package/src/component/Helix.mjs +1 -1
  138. package/src/component/Label.mjs +3 -18
  139. package/src/component/Legend.mjs +3 -3
  140. package/src/component/MagicMoveText.mjs +6 -14
  141. package/src/component/Process.mjs +3 -3
  142. package/src/component/Progress.mjs +1 -1
  143. package/src/component/StatusBadge.mjs +2 -2
  144. package/src/component/Timer.mjs +2 -2
  145. package/src/component/Toast.mjs +5 -3
  146. package/src/container/AccordionItem.mjs +2 -2
  147. package/src/container/Base.mjs +1 -1
  148. package/src/core/Base.mjs +77 -14
  149. package/src/core/Util.mjs +14 -2
  150. package/src/date/DayViewComponent.mjs +2 -2
  151. package/src/date/SelectorContainer.mjs +1 -1
  152. package/src/draggable/grid/header/toolbar/SortZone.mjs +21 -21
  153. package/src/draggable/table/header/toolbar/SortZone.mjs +1 -1
  154. package/src/form/field/CheckBox.mjs +4 -4
  155. package/src/form/field/FileUpload.mjs +25 -39
  156. package/src/form/field/Range.mjs +1 -1
  157. package/src/form/field/Text.mjs +3 -3
  158. package/src/form/field/TextArea.mjs +2 -3
  159. package/src/grid/Body.mjs +8 -5
  160. package/src/grid/_export.mjs +1 -1
  161. package/src/list/Color.mjs +2 -2
  162. package/src/main/DeltaUpdates.mjs +157 -98
  163. package/src/main/addon/AmCharts.mjs +61 -84
  164. package/src/main/addon/Base.mjs +161 -42
  165. package/src/main/addon/GoogleMaps.mjs +9 -16
  166. package/src/main/addon/HighlightJS.mjs +2 -13
  167. package/src/main/addon/IntersectionObserver.mjs +21 -21
  168. package/src/main/addon/MonacoEditor.mjs +32 -64
  169. package/src/manager/ClassHierarchy.mjs +114 -0
  170. package/src/menu/List.mjs +1 -1
  171. package/src/plugin/Popover.mjs +2 -2
  172. package/src/sitemap/Component.mjs +1 -1
  173. package/src/table/{View.mjs → Body.mjs} +25 -22
  174. package/src/table/Container.mjs +43 -43
  175. package/src/table/_export.mjs +2 -2
  176. package/src/table/plugin/CellEditing.mjs +19 -19
  177. package/src/tooltip/Base.mjs +1 -6
  178. package/src/tree/Accordion.mjs +3 -3
  179. package/src/vdom/Helper.mjs +19 -22
  180. package/src/worker/App.mjs +1 -2
  181. package/src/worker/Base.mjs +7 -5
  182. package/src/worker/Canvas.mjs +2 -3
  183. package/src/worker/Data.mjs +5 -7
  184. package/src/worker/Task.mjs +2 -3
  185. package/src/worker/VDom.mjs +3 -4
  186. package/src/worker/mixin/RemoteMethodAccess.mjs +5 -2
  187. package/learn/guides/MainThreadAddonExample.md +0 -15
  188. package/learn/guides/MainThreadAddonIntro.md +0 -44
@@ -1,6 +1,6 @@
1
1
  @use "sass:color";
2
2
 
3
- :root .neo-theme-neo-light { // .neo-table-view
3
+ :root .neo-theme-neo-light { // .neo-table-body
4
4
  --table-cell-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
5
5
  --table-cell-ismodified-color : orange;
6
6
  --table-cell-ismodified-size : 10px;
@@ -289,12 +289,12 @@ const DefaultConfig = {
289
289
  useVdomWorker: true,
290
290
  /**
291
291
  * buildScripts/injectPackageVersion.mjs will update this value
292
- * @default '10.0.0-alpha.5'
292
+ * @default '10.0.0-beta.2'
293
293
  * @memberOf! module:Neo
294
294
  * @name config.version
295
295
  * @type String
296
296
  */
297
- version: '10.0.0-alpha.5'
297
+ version: '10.0.0-beta.2'
298
298
  };
299
299
 
300
300
  Object.assign(DefaultConfig, {
package/src/Main.mjs CHANGED
@@ -1,10 +1,11 @@
1
- import Neo from './Neo.mjs';
2
- import * as core from './core/_export.mjs';
3
- import DomAccess from './main/DomAccess.mjs'; // has to get imported before DeltaUpdates
4
- import DeltaUpdates from './main/DeltaUpdates.mjs';
5
- import DomEvents from './main/DomEvents.mjs';
6
- import Observable from './core/Observable.mjs';
7
- import WorkerManager from './worker/Manager.mjs';
1
+ import Neo from './Neo.mjs';
2
+ import * as core from './core/_export.mjs';
3
+ import ClassHierarchyManager from './manager/ClassHierarchy.mjs';
4
+ import DomAccess from './main/DomAccess.mjs'; // has to get imported before DeltaUpdates
5
+ import DeltaUpdates from './main/DeltaUpdates.mjs';
6
+ import DomEvents from './main/DomEvents.mjs';
7
+ import Observable from './core/Observable.mjs';
8
+ import WorkerManager from './worker/Manager.mjs';
8
9
 
9
10
  /**
10
11
  * @class Neo.Main
package/src/Neo.mjs CHANGED
@@ -466,11 +466,11 @@ Neo = globalThis.Neo = Object.assign({
466
466
  proto = cls.prototype || cls,
467
467
  ns = Neo.ns(proto.constructor.config.className, false),
468
468
  protos = [],
469
- cfg, config, ctor, ntype;
469
+ cfg, config, ctor, hierarchyInfo, ntype;
470
470
 
471
471
  /*
472
472
  * If the namespace already exists, directly return it.
473
- * This can happen when using different versions of neo.mjs
473
+ * This can happen when using different versions of Neo.mjs
474
474
  * => Especially singletons (IdGenerator) must stay unique.
475
475
  *
476
476
  * This can also happen when using different environments of neo.mjs in parallel.
@@ -583,6 +583,20 @@ Neo = globalThis.Neo = Object.assign({
583
583
  Neo.applyToGlobalNs(cls)
584
584
  }
585
585
 
586
+ hierarchyInfo = {
587
+ className : proto.className,
588
+ module : cls,
589
+ ntype : Object.hasOwn(proto, 'ntype') ? proto.ntype : null,
590
+ parentClassName: proto.__proto__?.className || null
591
+ };
592
+
593
+ if (Neo.manager?.ClassHierarchy) {
594
+ Neo.manager.ClassHierarchy.add(hierarchyInfo)
595
+ } else {
596
+ Neo.classHierarchyMap ??= {};
597
+ Neo.classHierarchyMap[proto.className] = hierarchyInfo
598
+ }
599
+
586
600
  return cls
587
601
  },
588
602
 
@@ -100,9 +100,9 @@ class Button extends Component {
100
100
  route_: null,
101
101
  /**
102
102
  * The text displayed on the button [optional]
103
- * @member {String|null} text_=null
103
+ * @member {String|null} text=null
104
104
  */
105
- text_: null,
105
+ text: null,
106
106
  /**
107
107
  * Transforms the button tag into an a tag [optional]
108
108
  * @member {String|null} url_=null
@@ -95,8 +95,8 @@ class SettingsContainer extends Container {
95
95
  ntype : 'component',
96
96
  flag : 'day',
97
97
  header: {text: 'Day'},
98
- html : 'Day',
99
- style : {padding: '20px'}
98
+ style : {padding: '20px'},
99
+ test : 'Day'
100
100
  }, {
101
101
  module: () => import('./settings/WeekContainer.mjs'),
102
102
  flag : 'week',
@@ -490,7 +490,7 @@ class YearComponent extends Component {
490
490
  {cls: ['neo-animation-wrapper'], cn: [
491
491
  {cls: ['neo-content-wrapper'], cn: [
492
492
  {cls: ['neo-year-header'], cn: [
493
- {html: me.currentDate.getFullYear()},
493
+ {text: me.currentDate.getFullYear()},
494
494
  {cls: ['neo-nav-button', 'neo-prev-button']},
495
495
  {cls: ['neo-nav-button', 'neo-next-button']}
496
496
  ]},
@@ -539,7 +539,7 @@ class YearComponent extends Component {
539
539
  for (; i < 7; i++) {
540
540
  node = {
541
541
  cls : ['neo-cell', 'neo-weekday-cell'],
542
- html: me.intlFormat_day.format(date)
542
+ text: me.intlFormat_day.format(date)
543
543
  };
544
544
 
545
545
  day = date.getDay();
@@ -591,8 +591,8 @@ class YearComponent extends Component {
591
591
 
592
592
  cn: [{
593
593
  cls : ['neo-cell', 'neo-weeknumber-cell'],
594
- html : DateUtil.getWeekOfYear(weekDate),
595
- removeDom: !me.showWeekNumbers
594
+ removeDom: !me.showWeekNumbers,
595
+ text : DateUtil.getWeekOfYear(weekDate)
596
596
  }]
597
597
  };
598
598
 
@@ -610,7 +610,7 @@ class YearComponent extends Component {
610
610
 
611
611
  cn: [{
612
612
  cls : ['neo-cell-content'],
613
- html: hasContent ? day : me.showDisabledDays ? date.getDate() : ''
613
+ text: hasContent ? day : me.showDisabledDays ? date.getDate() : ''
614
614
  }]
615
615
  };
616
616
 
@@ -679,7 +679,7 @@ class YearComponent extends Component {
679
679
 
680
680
  monthVdom =
681
681
  {cls: ['neo-month'], cn: [
682
- {cls: ['neo-month-name'], html: me.intlFormat_month.format(currentDate)},
682
+ {cls: ['neo-month-name'], text: me.intlFormat_month.format(currentDate)},
683
683
  me.createDayNamesRow()
684
684
  ]};
685
685
 
@@ -809,7 +809,7 @@ class YearComponent extends Component {
809
809
  day = date.getDay();
810
810
  node = vdom.cn[0].cn[1].cn[j].cn[1].cn[i];
811
811
 
812
- node.html = me.intlFormat_day.format(date);
812
+ node.text = me.intlFormat_day.format(date);
813
813
 
814
814
  if (!me.showWeekends && (day === 0 || day === 6)) {
815
815
  node.removeDom = true
@@ -829,7 +829,7 @@ class YearComponent extends Component {
829
829
  *
830
830
  */
831
831
  updateHeaderYear() {
832
- this.vdom.cn[0].cn[0].cn[0].html = this.currentDate.getFullYear()
832
+ this.vdom.cn[0].cn[0].cn[0].text = this.currentDate.getFullYear()
833
833
  }
834
834
 
835
835
  /**
@@ -852,7 +852,7 @@ class YearComponent extends Component {
852
852
  currentDate.setMonth(i);
853
853
  currentDate.setDate(1);
854
854
 
855
- vdom.cn[0].cn[1].cn[i].cn[0].html = me.intlFormat_month.format(currentDate)
855
+ vdom.cn[0].cn[1].cn[i].cn[0].text = me.intlFormat_month.format(currentDate)
856
856
  }
857
857
 
858
858
  !silent && me.update()
@@ -63,7 +63,7 @@ class ColorsList extends List {
63
63
  * Override this method for custom renderers
64
64
  * @param {Object} record
65
65
  * @param {Number} index
66
- * @returns {Object|Object[]|String} Either a config object to assign to the item, a vdom cn array or a html string
66
+ * @returns {Object|Object[]|String} Either a config object to assign to the item, a vdom cn array or a string.
67
67
  */
68
68
  createItemContent(record, index) {
69
69
  return {style: {
@@ -43,7 +43,7 @@ class List extends ComponentList {
43
43
  * Override this method for custom renderers
44
44
  * @param {Object} record
45
45
  * @param {Number} index
46
- * @returns {Object|Object[]|String} Either a config object to assign to the item, a vdom cn array or a html string
46
+ * @returns {Object|Object[]|String} Either a config object to assign to the item, a vdom cn array or a string.
47
47
  */
48
48
  createItemContent(record, index) {
49
49
  let me = this,
@@ -485,10 +485,10 @@ class Component extends BaseComponent {
485
485
  tag : 'span',
486
486
  cls : ['neo-month-name'],
487
487
  flag: 'month-name',
488
- html: me.intlFormat_month.format(date)
488
+ text: me.intlFormat_month.format(date)
489
489
  }, {
490
490
  vtype: 'text',
491
- html : ` ${date.getFullYear()}`
491
+ text : ` ${date.getFullYear()}`
492
492
  }]
493
493
  }]
494
494
  };
@@ -499,8 +499,8 @@ class Component extends BaseComponent {
499
499
  id : `${me.id}__day__${ymdDate}`,
500
500
  cn : [{
501
501
  cls : ['neo-day-number'],
502
- html: day,
503
- id : `${me.id}__day_number__${ymdDate}`
502
+ id : `${me.id}__day_number__${ymdDate}`,
503
+ text: day
504
504
  }]
505
505
  };
506
506
 
@@ -530,12 +530,12 @@ class Component extends BaseComponent {
530
530
 
531
531
  cn: [{
532
532
  cls : ['neo-event-title'],
533
- html: record.title,
534
- id : me.id + '__title__' + recordKey
533
+ id : me.id + '__title__' + recordKey,
534
+ text: record.title
535
535
  }, {
536
536
  cls : ['neo-event-time'],
537
- html: me.intlFormat_time.format(record.startDate),
538
- id : me.id + '__time__' + recordKey
537
+ id : me.id + '__time__' + recordKey,
538
+ text: me.intlFormat_time.format(record.startDate)
539
539
  }]
540
540
  });
541
541
  }
@@ -729,8 +729,8 @@ class Component extends BaseComponent {
729
729
  if (flag) {
730
730
  date = new Date(flag);
731
731
  date.setMonth(date.getMonth() + 1);
732
- header.cn[0].html = me.intlFormat_month.format(date);
733
- header.cn[1].html = ` ${date.getFullYear()}`;
732
+ header.cn[0].text = me.intlFormat_month.format(date);
733
+ header.cn[1].text = ` ${date.getFullYear()}`;
734
734
  break
735
735
  }
736
736
  }
@@ -753,8 +753,8 @@ class Component extends BaseComponent {
753
753
  i = 1,
754
754
  day, node;
755
755
 
756
- header.cn[0].html = me.intlFormat_month.format(date);
757
- header.cn[1].html = ` ${date.getFullYear()}`;
756
+ header.cn[0].text = me.intlFormat_month.format(date);
757
+ header.cn[1].text = ` ${date.getFullYear()}`;
758
758
 
759
759
  date.setDate(me.currentDate.getDate() - me.currentDate.getDay() + me.weekStartDay);
760
760
 
@@ -764,7 +764,7 @@ class Component extends BaseComponent {
764
764
  if (create) {
765
765
  node = {
766
766
  cls : ['neo-day-name'],
767
- html: me.intlFormat_day.format(date)
767
+ text: me.intlFormat_day.format(date)
768
768
  };
769
769
 
770
770
  if (!me.showWeekends && (day === 0 || day === 6)) {
@@ -777,7 +777,7 @@ class Component extends BaseComponent {
777
777
 
778
778
  // the method could be called before the header content got created
779
779
  if (node) {
780
- node.html = me.intlFormat_day.format(date);
780
+ node.text = me.intlFormat_day.format(date);
781
781
 
782
782
  if (!me.showWeekends && (day === 0 || day === 6)) {
783
783
  node.removeDom = true
@@ -802,7 +802,7 @@ class Component extends BaseComponent {
802
802
  months = VDomUtil.getFlags(me.vdom, 'month-name');
803
803
 
804
804
  months.forEach(month => {
805
- month.html = me.intlFormat_month.format(date);
805
+ month.text = me.intlFormat_month.format(date);
806
806
  date.setMonth(date.getMonth() + 1);
807
807
  });
808
808
 
@@ -582,8 +582,8 @@ class Component extends BaseComponent {
582
582
 
583
583
  header =
584
584
  {cls: ['neo-header-row-item'], removeDom: removeDom, cn: [
585
- {cls: ['neo-day'], html: me.intlFormat_day.format(date)},
586
- {cls: dateCls, html: currentDate}
585
+ {cls: ['neo-day'], text: me.intlFormat_day.format(date)},
586
+ {cls: dateCls, text: currentDate}
587
587
  ]};
588
588
 
589
589
  return {column, header}
@@ -906,17 +906,17 @@ class Component extends BaseComponent {
906
906
 
907
907
  cn: [{
908
908
  cls : ['neo-event-time'],
909
- html: me.intlFormat_time.format(record.startDate),
910
- id : `${me.id}__time__${recordKey}`
909
+ id : `${me.id}__time__${recordKey}`,
910
+ text: me.intlFormat_time.format(record.startDate)
911
911
  }, {
912
912
  cls : ['neo-event-title'],
913
- html: record.title,
914
- id : `${me.id}__title__${recordKey}`
913
+ id : `${me.id}__title__${recordKey}`,
914
+ text: record.title
915
915
  }, {
916
916
  cls : ['neo-event-time', 'neo-event-end-time'],
917
- html : me.intlFormat_time.format(record.endDate),
918
917
  id : `${me.id}__enddate__${recordKey}`,
919
- removeDom: !showEventEndTime
918
+ removeDom: !showEventEndTime,
919
+ text : me.intlFormat_time.format(record.endDate)
920
920
  }],
921
921
 
922
922
  style: {
@@ -975,8 +975,8 @@ class Component extends BaseComponent {
975
975
 
976
976
  header.cn.push(
977
977
  {cls: ['neo-header-row-item'], id: headerId, removeDom, cn: [
978
- {cls: ['neo-day'], html: me.intlFormat_day.format(date), id: `${headerId}_day`},
979
- {cls : dateCls, html: currentDate, id: `${headerId}_date`}
978
+ {cls: ['neo-day'], id: `${headerId}_day`, text: me.intlFormat_day.format(date)},
979
+ {cls : dateCls, id: `${headerId}_date`, text: currentDate}
980
980
  ]})
981
981
  } else {
982
982
  Object.assign(content.cn[i], {
@@ -987,8 +987,8 @@ class Component extends BaseComponent {
987
987
  });
988
988
 
989
989
  Object.assign(header.cn[i], {id: headerId, removeDom});
990
- Object.assign(header.cn[i].cn[0], {html: me.intlFormat_day.format(date), id: `${headerId}_day`});
991
- Object.assign(header.cn[i].cn[1], {cls: dateCls, html: currentDate, id: `${headerId}_date`})
990
+ Object.assign(header.cn[i].cn[0], {id: `${headerId}_day`, text: me.intlFormat_day.format(date)});
991
+ Object.assign(header.cn[i].cn[1], {cls: dateCls, id: `${headerId}_date`, text: currentDate})
992
992
  }
993
993
 
994
994
  date.setDate(date.getDate() + 1)
@@ -450,8 +450,8 @@ class EventDragZone extends DragZone {
450
450
  endDate = me.adjustEndDate(endDate);
451
451
 
452
452
  deltas.push({
453
- id : me.dragProxy.vdom.cn[2].id,
454
- innerHTML: owner.intlFormat_time.format(endDate)
453
+ id : me.dragProxy.vdom.cn[2].id,
454
+ textContent: owner.intlFormat_time.format(endDate)
455
455
  });
456
456
 
457
457
  if (keepEndDate || keepStartDate) {
@@ -460,8 +460,8 @@ class EventDragZone extends DragZone {
460
460
  }
461
461
 
462
462
  deltas.push({
463
- id : me.dragProxy.vdom.cn[0].id,
464
- innerHTML: owner.intlFormat_time.format(startDate)
463
+ id : me.dragProxy.vdom.cn[0].id,
464
+ textContent: owner.intlFormat_time.format(startDate)
465
465
  });
466
466
 
467
467
  // check if the node got added yet
@@ -179,16 +179,16 @@ class TimeAxisComponent extends Component {
179
179
  */
180
180
  createItems() {
181
181
  let {vdom} = this,
182
- html, i;
182
+ text, i;
183
183
 
184
184
  vdom.cn = [];
185
185
 
186
186
  for (i=0; i < 25; i++) {
187
- html = i === 24 ? '00:00' : (i < 10 ? '0' : '') + i + ':00';
187
+ text = i === 24 ? '00:00' : (i < 10 ? '0' : '') + i + ':00';
188
188
 
189
189
  vdom.cn.push({
190
190
  cls: ['neo-c-w-timeaxis-item'],
191
- cn : [{html}]
191
+ cn : [{text}]
192
192
  })
193
193
  }
194
194
  }
@@ -342,6 +342,11 @@ class Component extends Base {
342
342
  * @member {String|null} tag_=null
343
343
  */
344
344
  tag_: null,
345
+ /**
346
+ * The top level textContent of the component
347
+ * @member {String|null} text_=null
348
+ */
349
+ text_: null,
345
350
  /**
346
351
  * Add tooltip config object or a string containing the display text
347
352
  * See tooltip/Base.mjs
@@ -995,6 +1000,16 @@ class Component extends Base {
995
1000
  }
996
1001
  }
997
1002
 
1003
+ /**
1004
+ * Triggered after the text config got changed
1005
+ * @param {String|null} value
1006
+ * @param {String|null} oldValue
1007
+ * @protected
1008
+ */
1009
+ afterSetText(value, oldValue) {
1010
+ this.changeVdomRootKey('text', value)
1011
+ }
1012
+
998
1013
  /**
999
1014
  * Triggered after the tooltip config got changed
1000
1015
  * @param {Object|String} value
@@ -1417,8 +1432,8 @@ class Component extends Base {
1417
1432
  cls: this.loadingSpinnerCls
1418
1433
  }, {
1419
1434
  cls : ['neo-loading-message'],
1420
- html : loadingMessage,
1421
- removeDom: !Neo.isString(loadingMessage)
1435
+ removeDom: !Neo.isString(loadingMessage),
1436
+ text : loadingMessage
1422
1437
  }]
1423
1438
  }]
1424
1439
  }
@@ -65,10 +65,10 @@ class Carousel extends Component {
65
65
  * record = {foo: ... , bar: ...}
66
66
  * data => [{
67
67
  * cls: 'css-foo-class',
68
- * html: data.foo
68
+ * text: data.foo
69
69
  * },
70
70
  * {
71
- * html: data.baa
71
+ * text: data.bar
72
72
  * }]"
73
73
  */
74
74
  itemTpl_: null,
@@ -38,9 +38,9 @@ class Chip extends Component {
38
38
  iconCls_: null,
39
39
  /**
40
40
  * The text displayed on the button [optional]
41
- * @member {String|null} text_=null
41
+ * @member {String|null} text=null
42
42
  */
43
- text_: null,
43
+ text: null,
44
44
  /**
45
45
  * Set this one to false when used in lists
46
46
  * @member {Boolean} useDomListeners=true
@@ -132,7 +132,7 @@ class Chip extends Component {
132
132
  textNode.removeDom = true
133
133
  } else {
134
134
  textNode.removeDom = false;
135
- textNode.html = value
135
+ textNode.text = value
136
136
  }
137
137
 
138
138
  this.update()
@@ -850,8 +850,8 @@ class Circle extends Component {
850
850
  let me = this,
851
851
  innerCircle = me.getInnerCircle();
852
852
 
853
- innerCircle.cn[0].html = me.store?.getCount() || 0;
854
- innerCircle.cn[1].html = me.title;
853
+ innerCircle.cn[0].text = me.store?.getCount() || 0;
854
+ innerCircle.cn[1].text = me.title;
855
855
 
856
856
  !silent && me.update()
857
857
  }
@@ -250,7 +250,7 @@ class DateSelector extends Component {
250
250
 
251
251
  me.updateHeaderDays(me.dayNameFormat, '', true);
252
252
 
253
- me.getHeaderMonthEl().html = dt.format(me.currentDate);
253
+ me.getHeaderMonthEl().text = dt.format(me.currentDate);
254
254
 
255
255
  me.update()
256
256
  }
@@ -588,7 +588,7 @@ class DateSelector extends Component {
588
588
  for (; i < len; i++) {
589
589
  config =
590
590
  {cls: ['neo-cell'], cn: [
591
- {cls : ['neo-cell-content'], html: me.intlFormat_day.format(date)}
591
+ {cls : ['neo-cell-content'], text: me.intlFormat_day.format(date)}
592
592
  ]};
593
593
 
594
594
  day = date.getDay();
@@ -652,7 +652,7 @@ class DateSelector extends Component {
652
652
  tabIndex: hasContent ? -1 : null,
653
653
  cn: [{
654
654
  cls : ['neo-cell-content'],
655
- html: hasContent ? day : me.showDisabledDays ? date.getDate() : ''
655
+ text: hasContent ? day : me.showDisabledDays ? date.getDate() : ''
656
656
  }]
657
657
  };
658
658
 
@@ -748,7 +748,7 @@ class DateSelector extends Component {
748
748
  cellEl = VDomUtil.find(me.vdom, data.path[0].id),
749
749
  date = me.currentDate; // cloned
750
750
 
751
- date.setDate(parseInt(cellEl.vdom.cn[0].html));
751
+ date.setDate(parseInt(cellEl.vdom.cn[0].text));
752
752
  date = DateUtil.convertToyyyymmdd(date);
753
753
 
754
754
  // We want to always trigger a change event.
@@ -893,7 +893,7 @@ class DateSelector extends Component {
893
893
  for (; i < 7; i++) {
894
894
  node = centerEl.cn[i];
895
895
 
896
- node.cn[0].html = me.intlFormat_day.format(date);
896
+ node.cn[0].text = me.intlFormat_day.format(date);
897
897
 
898
898
  day = date.getDay();
899
899
 
@@ -927,7 +927,7 @@ class DateSelector extends Component {
927
927
  headerCenterEl, y;
928
928
 
929
929
  if (!me.mounted || !me.useAnimations) {
930
- monthEl.html = currentMonth;
930
+ monthEl.text = currentMonth;
931
931
  !silent && me.update();
932
932
  return null
933
933
  } else {
@@ -954,7 +954,7 @@ class DateSelector extends Component {
954
954
 
955
955
  headerCenterEl.cn[0].cn[0].cn.push({
956
956
  cls : ['neo-month-text'],
957
- html: currentMonth
957
+ text: currentMonth
958
958
  });
959
959
 
960
960
  headerCenterEl.cn[0].cn[0].cn[slideDirection === 'top' ? 'unshift' : 'push'](headerCenterEl.cn[1]);
@@ -1012,7 +1012,7 @@ class DateSelector extends Component {
1012
1012
  let me = this,
1013
1013
  yearEl = me.getHeaderYearEl();
1014
1014
 
1015
- yearEl.html = me.currentDate.getFullYear();
1015
+ yearEl.text = me.currentDate.getFullYear();
1016
1016
 
1017
1017
  !silent && me.update()
1018
1018
  }
@@ -702,7 +702,7 @@ class Helix extends Component {
702
702
  if (me.showCloneInfo) {
703
703
  itemVdom.cn.push({
704
704
  cls : ['contact-name'],
705
- html: record.firstname + ' ' + record.lastname
705
+ text: record.firstname + ' ' + record.lastname
706
706
  })
707
707
  }
708
708
 
@@ -22,25 +22,10 @@ class Label extends Component {
22
22
  */
23
23
  baseCls: ['neo-label'],
24
24
  /**
25
- * @member {String} text_=''
26
- */
27
- text_: '',
28
- /**
29
- * @member {Object} _vdom={tag: 'label'}
25
+ * @member {String} tag='label'
26
+ * @protected
30
27
  */
31
- _vdom:
32
- {tag: 'label', draggable: false}
33
- }
34
-
35
- /**
36
- * Triggered after the text config got changed
37
- * @param {String} value
38
- * @param {String} oldValue
39
- * @protected
40
- */
41
- afterSetText(value, oldValue) {
42
- this.vdom.html = value;
43
- this.update()
28
+ tag: 'label'
44
29
  }
45
30
  }
46
31
 
@@ -27,9 +27,9 @@ class Legend extends Component {
27
27
  */
28
28
  iconCls_: 'far fa-check',
29
29
  /**
30
- * @member {String} text_=''
30
+ * @member {String} text=''
31
31
  */
32
- text_: '',
32
+ text: '',
33
33
  /**
34
34
  * @member {Boolean} useIcon_=true
35
35
  */
@@ -62,7 +62,7 @@ class Legend extends Component {
62
62
  * @protected
63
63
  */
64
64
  afterSetText(value, oldValue) {
65
- this.vdom.cn[1].html = value;
65
+ this.vdom.cn[1].text = value;
66
66
  this.update()
67
67
  }
68
68