neo.mjs 7.1.0 → 7.2.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.
Files changed (37) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/portal/index.html +1 -1
  3. package/apps/portal/model/Example.mjs +46 -0
  4. package/apps/portal/resources/data/examples_devmode.json +173 -0
  5. package/apps/portal/resources/data/examples_dist_dev.json +164 -0
  6. package/apps/portal/resources/data/examples_dist_prod.json +164 -0
  7. package/apps/portal/store/Examples.mjs +33 -0
  8. package/apps/portal/view/HeaderToolbar.mjs +3 -0
  9. package/apps/portal/view/Viewport.mjs +3 -2
  10. package/apps/portal/view/ViewportController.mjs +32 -14
  11. package/apps/portal/view/about/Container.mjs +2 -2
  12. package/apps/portal/view/blog/List.mjs +3 -3
  13. package/apps/portal/view/examples/List.mjs +122 -0
  14. package/apps/portal/view/examples/TabContainer.mjs +79 -0
  15. package/apps/portal/view/examples/TabContainerController.mjs +41 -0
  16. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  17. package/apps/shareddialog/view/MainContainerController.mjs +37 -30
  18. package/examples/ServiceWorker.mjs +2 -2
  19. package/examples/todoList/version2/TodoListModel.mjs +1 -1
  20. package/package.json +1 -1
  21. package/resources/scss/src/apps/portal/about/MemberContainer.scss +5 -4
  22. package/resources/scss/src/apps/portal/blog/Container.scss +2 -0
  23. package/resources/scss/src/apps/portal/examples/List.scss +157 -0
  24. package/resources/scss/src/apps/portal/examples/TabContainer.scss +36 -0
  25. package/resources/scss/src/button/Base.scss +4 -0
  26. package/resources/scss/src/calendar/view/calendars/ColorsList.scss +4 -0
  27. package/resources/scss/src/calendar/view/calendars/List.scss +2 -1
  28. package/resources/scss/src/dialog/Base.scss +2 -2
  29. package/resources/scss/src/list/Base.scss +3 -3
  30. package/resources/scss/theme-neo-light/button/Base.scss +3 -3
  31. package/src/DefaultConfig.mjs +2 -2
  32. package/src/calendar/view/MainContainer.mjs +7 -5
  33. package/src/calendar/view/calendars/EditContainer.mjs +3 -2
  34. package/src/calendar/view/calendars/List.mjs +1 -0
  35. package/src/calendar/view/week/Component.mjs +5 -3
  36. package/src/calendar/view/week/plugin/DragDrop.mjs +4 -3
  37. package/src/layout/Cube.mjs +44 -38
@@ -0,0 +1,157 @@
1
+ .portal-examples-list.neo-list {
2
+ transition: padding var(--portal-transition-duration) ease-out;
3
+
4
+ .neo-list-item {
5
+ cursor : default;
6
+ display : flex;
7
+ max-width : 800px;
8
+ overflow : hidden;
9
+ padding : 0;
10
+ transition : height var(--portal-transition-duration) ease-out, margin-bottom var(--portal-transition-duration) ease-out;
11
+ white-space : normal;
12
+ width : 100%;
13
+
14
+ .content {
15
+ flex: 1;
16
+ }
17
+
18
+ .neo-absolute {
19
+ position: absolute;
20
+ }
21
+
22
+ .neo-full-size {
23
+ height: 100%;
24
+ width : 100%;
25
+ }
26
+
27
+ .neo-github-image {
28
+ color : #ddd;
29
+ text-decoration : none;
30
+ transition-duration : var(--portal-transition-duration);
31
+ transition-property : font-size, height, width;
32
+ transition-timing-function: ease-out;
33
+ }
34
+
35
+ .neo-inner-content {
36
+ color : #fff;
37
+ display : inline-block;
38
+ margin-left: 10px;
39
+ text-shadow: 1px 1px 1px #000, 1px 1px 1px #fff;
40
+ transition : font-size var(--portal-transition-duration) ease-out;
41
+ }
42
+
43
+ .neo-inner-details {
44
+ transition: line-height var(--portal-transition-duration) ease-out;
45
+ }
46
+
47
+ .neo-item-bottom-position {
48
+ bottom : 0;
49
+ left : 0;
50
+ transition: margin var(--portal-transition-duration) ease-out;
51
+ }
52
+
53
+ .neo-relative {
54
+ position: relative;
55
+ }
56
+
57
+ .neo-title {
58
+ color : #fff;
59
+ font-weight : 600;
60
+ line-height : 1;
61
+ text-decoration: none;
62
+ text-shadow : 1px 1px 1px #000, 1px 1px 1px #fff;
63
+ transition : color 250ms ease-out;
64
+
65
+ &:hover {
66
+ color: #5d83a7
67
+ }
68
+ }
69
+
70
+ .neo-top-20 {
71
+ align-items: center;
72
+ display : flex;
73
+ transition : margin var(--portal-transition-duration) ease-out;
74
+ }
75
+
76
+ .preview-image {
77
+ background-blend-mode: overlay;
78
+ background-size : cover;
79
+ height : 100%;
80
+ }
81
+ }
82
+
83
+ @media (max-height: 400px), (max-width: 600px) {
84
+ padding: 5px 5px 0 5px;
85
+
86
+ .neo-github-image {
87
+ font-size: 30px;
88
+ height : 30px;
89
+ width : 30px;
90
+ }
91
+
92
+ .neo-inner-content {
93
+ font-size: 12px;
94
+ }
95
+
96
+ .neo-inner-details {
97
+ line-height: 16px;
98
+ }
99
+
100
+ .neo-item-bottom-position {
101
+ margin: 9px 12px;
102
+ right : 15%;
103
+ }
104
+
105
+ .neo-list-item {
106
+ border-radius: 10px;
107
+ height : 200px;
108
+ margin-bottom: 5px;
109
+ }
110
+
111
+ .neo-title {
112
+ font-size: 20px;
113
+ }
114
+
115
+ .neo-top-20 {
116
+ margin-top: 10px;
117
+ }
118
+ }
119
+
120
+ @media (min-height: 401px) and (min-width: 601px) {
121
+ padding: 10px 10px 0 10px;
122
+
123
+ .neo-github-image {
124
+ font-size: 44px;
125
+ height : 44px;
126
+ width : 44px;
127
+ }
128
+
129
+ .neo-inner-content {
130
+ font-size: 16px;
131
+ }
132
+
133
+ .neo-inner-details {
134
+ font-size : 16px;
135
+ line-height: 22px;
136
+ }
137
+
138
+ .neo-item-bottom-position {
139
+ margin: 30px 40px;
140
+ right : 30%;
141
+ }
142
+
143
+ .neo-list-item {
144
+ border-radius: 20px;
145
+ height : 400px;
146
+ margin-bottom: 10px;
147
+ }
148
+
149
+ .neo-title {
150
+ font-size: 34px;
151
+ }
152
+
153
+ .neo-top-20 {
154
+ margin-top: 20px;
155
+ }
156
+ }
157
+ }
@@ -0,0 +1,36 @@
1
+ .portal-examples-tab-container.neo-tab-container {
2
+ margin : 0 auto;
3
+ max-width: 830px;
4
+ }
5
+
6
+ .portal-examples-tab-header-toolbar.neo-tab-header-toolbar {
7
+ background-color: #8BA6FF;
8
+
9
+ .neo-tab-header-button.neo-button {
10
+ .neo-button-glyph {
11
+ color: #fff;
12
+ }
13
+
14
+ .neo-button-ripple {
15
+ background-color: #3E63DD;
16
+ }
17
+
18
+ &.neo-button.pressed .neo-tab-button-indicator {
19
+ background-color: #3E63DD;
20
+ }
21
+
22
+ .neo-button-text {
23
+ color: #fff;
24
+ }
25
+
26
+ &.pressed {
27
+ .neo-button-glyph {
28
+ color: #3E63DD;
29
+ }
30
+ }
31
+ }
32
+
33
+ .neo-tab-strip .neo-active-tab-indicator {
34
+ background-color: #3E63DD;
35
+ }
36
+ }
@@ -73,16 +73,20 @@
73
73
  .neo-button-ripple {
74
74
  background-color: var(--button-ripple-background-color);
75
75
  border-radius : 50%;
76
+ padding : var(--button-padding);
76
77
  opacity : 0;
77
78
  position : absolute;
78
79
  transform : scale(4);
79
80
  }
80
81
 
81
82
  .neo-button-ripple-wrapper {
83
+ border-radius : var(--button-border-radius);
82
84
  height : 100%;
85
+ left : 0;
83
86
  overflow : hidden;
84
87
  pointer-events: none;
85
88
  position : absolute;
89
+ top : 0;
86
90
  width : 100%;
87
91
  }
88
92
 
@@ -16,5 +16,9 @@
16
16
  &.neo-selected {
17
17
  box-shadow: 0 0 0 0.25em currentColor;
18
18
  }
19
+
20
+ &[aria-selected="true"] {
21
+ outline: none !important;
22
+ }
19
23
  }
20
24
  }
@@ -1,4 +1,4 @@
1
- .neo-calendars-list.neo-list {
1
+ .neo-calendars-list {
2
2
  .neo-checkboxfield {
3
3
  align-items: center;
4
4
  display : flex;
@@ -64,6 +64,7 @@
64
64
 
65
65
  .neo-edit-icon {
66
66
  color : var(--calendars-list-edit-icon-color);
67
+ cursor : pointer;
67
68
  font-size : 16px;
68
69
  font-weight : 600;
69
70
  height : 1em;
@@ -107,6 +107,6 @@
107
107
 
108
108
  // A focusable, but zero-sized element used to grab and redirect focus in focus-trapped modals
109
109
  .neo-focus-trap {
110
- position : absolute;
111
- clip : rect(0, 0, 0, 0);
110
+ clip : rect(0, 0, 0, 0);
111
+ position: absolute;
112
112
  }
@@ -69,9 +69,9 @@
69
69
  }
70
70
 
71
71
  &[aria-selected="true"] {
72
- background-color: var(--list-item-background-color-selected) !important;
73
- color : var(--list-item-color-selected) !important;
74
- cursor : default !important;
72
+ background-color: var(--list-item-background-color-selected);
73
+ color : var(--list-item-color-selected);
74
+ cursor : default;
75
75
  }
76
76
 
77
77
  .neo-highlight-search {
@@ -45,7 +45,7 @@
45
45
  --button-background-gradient-start : #434749;
46
46
  --button-opacity-disabled : inherit;
47
47
  --button-outline-active : none;
48
- --button-ripple-background-color : transparent;
48
+ --button-ripple-background-color : #8BA6FF;
49
49
  --button-use-gradients : false;
50
50
 
51
51
  // {module: Button; ui: --secondary} ––––––––––––––––––––––––––––––––––––––––––––––––––
@@ -78,7 +78,7 @@
78
78
  --button-secondary-badge-background-color : transparent;
79
79
  --button-secondary-badge-color : transparent;
80
80
  --button-secondary-opacity-disabled : none;
81
- --button-secondary-ripple-background-color : inherit;
81
+ --button-secondary-ripple-background-color : #8BA6FF;
82
82
 
83
83
 
84
84
  // {module: Button; ui: --ghost} –––––––––––––––––––––––––––––––––––––––––––––––––––––--
@@ -111,7 +111,7 @@
111
111
  --button-ghost-badge-background-color : transparent;
112
112
  --button-ghost-badge-color : transparent;
113
113
  --button-ghost-opacity-disabled : inherit;
114
- --button-ghost-ripple-background-color : inherit;
114
+ --button-ghost-ripple-background-color : #8BA6FF;
115
115
 
116
116
 
117
117
  // {module: Button; ui: --tertiary} –––––––––––––––––––––––––––––––––––––––––––––––––––
@@ -262,12 +262,12 @@ const DefaultConfig = {
262
262
  useVdomWorker: true,
263
263
  /**
264
264
  * buildScripts/injectPackageVersion.mjs will update this value
265
- * @default '7.1.0'
265
+ * @default '7.2.0'
266
266
  * @memberOf! module:Neo
267
267
  * @name config.version
268
268
  * @type String
269
269
  */
270
- version: '7.1.0'
270
+ version: '7.2.0'
271
271
  };
272
272
 
273
273
  Object.assign(DefaultConfig, {
@@ -323,11 +323,12 @@ class MainContainer extends Container {
323
323
  let me = this;
324
324
 
325
325
  me._editCalendarContainer = value = Neo.create({
326
- module : EditCalendarContainer,
327
- appName: me.appName,
328
- model : {parent: me.getModel()},
329
- owner : me,
330
- width : 250,
326
+ module : EditCalendarContainer,
327
+ appName : me.appName,
328
+ model : {parent: me.getModel()},
329
+ owner : me,
330
+ width : 250,
331
+ windowId: me.windowId,
331
332
  ...me.editCalendarContainerConfig
332
333
  })
333
334
  }
@@ -499,6 +500,7 @@ class MainContainer extends Container {
499
500
  me.items[1].add({
500
501
  module : module.default,
501
502
  collapsed,
503
+ minWidth : me.settingsContainerWidth,
502
504
  removeInactiveCards: me.removeInactiveCards,
503
505
  style : {marginRight: !collapsed ? '0' : `-${me.settingsContainerWidth}px`},
504
506
  width : me.settingsContainerWidth,
@@ -64,7 +64,9 @@ class EditContainer extends FormContainer {
64
64
  afterSetMounted(value, oldValue) {
65
65
  super.afterSetMounted(value, oldValue);
66
66
 
67
- value && this.getField('name').focus();
67
+ value && this.getField('name').then(field => {
68
+ field.focus()
69
+ })
68
70
  }
69
71
 
70
72
  /**
@@ -116,7 +118,6 @@ class EditContainer extends FormContainer {
116
118
  if (record) {
117
119
  me.colorsList = Neo.create({
118
120
  module : ColorsList,
119
- appName : me.appName,
120
121
  listeners : {change: me.onColorChange, scope: me},
121
122
  parentId : me.parentId,
122
123
  value : record.color,
@@ -66,6 +66,7 @@ class List extends ComponentList {
66
66
  appName : me.appName,
67
67
  listeners: {change: me.onCheckboxChange, scope: me},
68
68
  parentId : me.id,
69
+ windowId : me.windowId,
69
70
  ...me.itemDefaults,
70
71
  ...config
71
72
  })
@@ -359,19 +359,21 @@ class Component extends BaseComponent {
359
359
  import('./plugin/DragDrop.mjs'),
360
360
  import('./plugin/EventResizable.mjs')
361
361
  ]).then(modules => {
362
- let me = this,
363
- {appName} = me,
364
- plugins = me.plugins || [];
362
+ let me = this,
363
+ {appName, windowId} = me,
364
+ plugins = me.plugins || [];
365
365
 
366
366
  plugins.push({
367
367
  module : modules[0].default,
368
368
  appName,
369
+ windowId,
369
370
  ...me.pluginDragDropConfig
370
371
  }, {
371
372
  module : modules[1].default,
372
373
  appName,
373
374
  delegationCls: 'neo-event',
374
375
  directions : ['b', 't'],
376
+ windowId,
375
377
  ...me.pluginEventResizableConfig
376
378
  });
377
379
 
@@ -74,9 +74,9 @@ class DragDrop extends Base {
74
74
  * @returns {Neo.calendar.view.week.EventDragZone}
75
75
  */
76
76
  getEventDragZone(opts) {
77
- let me = this,
78
- {appName, owner} = me,
79
- {eventDragZone, timeAxis} = owner,
77
+ let me = this,
78
+ {appName, owner, windowId} = me,
79
+ {eventDragZone, timeAxis} = owner,
80
80
 
81
81
  config = {
82
82
  axisEndTime : timeAxis.getTime(owner.endTime),
@@ -93,6 +93,7 @@ class DragDrop extends Base {
93
93
  appName,
94
94
  owner,
95
95
  scrollContainerId: owner.getScrollContainer().id,
96
+ windowId,
96
97
  ...config,
97
98
 
98
99
  dragProxyConfig: {
@@ -130,7 +130,7 @@ class Cube extends Card {
130
130
  * @protected
131
131
  */
132
132
  async afterSetActiveIndex(value, oldValue) {
133
- if (Neo.isNumber(value)) {
133
+ if (Neo.isNumber(value) && value < 6) {
134
134
  let me = this,
135
135
  {container} = me,
136
136
  item = container.items[value];
@@ -254,24 +254,26 @@ class Cube extends Card {
254
254
  applyChildAttributes(item, index) {
255
255
  let {wrapperCls} = item;
256
256
 
257
- wrapperCls = NeoArray.union(wrapperCls, 'neo-face', Object.keys(Cube.faces)[index]);
258
-
259
- switch(index) {
260
- case 0:
261
- case 1:
262
- wrapperCls = NeoArray.union(wrapperCls, 'neo-face-z');
263
- break;
264
- case 2:
265
- case 3:
266
- wrapperCls = NeoArray.union(wrapperCls, 'neo-face-x');
267
- break;
268
- case 4:
269
- case 5:
270
- wrapperCls = NeoArray.union(wrapperCls, 'neo-face-y');
271
- break;
272
- }
257
+ if (index < 6) {
258
+ wrapperCls = NeoArray.union(wrapperCls, 'neo-face', Object.keys(Cube.faces)[index]);
259
+
260
+ switch(index) {
261
+ case 0:
262
+ case 1:
263
+ wrapperCls = NeoArray.union(wrapperCls, 'neo-face-z');
264
+ break;
265
+ case 2:
266
+ case 3:
267
+ wrapperCls = NeoArray.union(wrapperCls, 'neo-face-x');
268
+ break;
269
+ case 4:
270
+ case 5:
271
+ wrapperCls = NeoArray.union(wrapperCls, 'neo-face-y');
272
+ break;
273
+ }
273
274
 
274
- item.wrapperCls = wrapperCls
275
+ item.wrapperCls = wrapperCls
276
+ }
275
277
  }
276
278
 
277
279
  /**
@@ -298,7 +300,7 @@ class Cube extends Card {
298
300
 
299
301
  if (me.hideInactiveCardsOnDestroy) {
300
302
  vdom.cn.forEach((item, index) => {
301
- if (index !== me.activeIndex) {
303
+ if (index < 6 && index !== me.activeIndex) {
302
304
  item.removeDom = true
303
305
  }
304
306
  })
@@ -334,8 +336,10 @@ class Cube extends Card {
334
336
 
335
337
  me.timeout(50).then(() => {
336
338
  // Important when switching from a card layout to this one
337
- container.vdom.cn[0].cn[0].cn.forEach(node => {
338
- delete node.removeDom
339
+ container.vdom.cn[0].cn[0].cn.forEach((node, index) => {
340
+ if (index < 6) {
341
+ delete node.removeDom
342
+ }
339
343
  });
340
344
 
341
345
  container.update()
@@ -352,24 +356,26 @@ class Cube extends Card {
352
356
  removeChildAttributes(item, index) {
353
357
  let {wrapperCls} = item;
354
358
 
355
- NeoArray.remove(wrapperCls, ['neo-face', Object.keys(Cube.faces)[index]]);
356
-
357
- switch(index) {
358
- case 0:
359
- case 1:
360
- NeoArray.remove(wrapperCls, 'neo-face-z');
361
- break;
362
- case 2:
363
- case 3:
364
- NeoArray.remove(wrapperCls, 'neo-face-x');
365
- break;
366
- case 4:
367
- case 5:
368
- NeoArray.remove(wrapperCls, 'neo-face-y');
369
- break;
370
- }
359
+ if (index < 6) {
360
+ NeoArray.remove(wrapperCls, ['neo-face', Object.keys(Cube.faces)[index]]);
361
+
362
+ switch(index) {
363
+ case 0:
364
+ case 1:
365
+ NeoArray.remove(wrapperCls, 'neo-face-z');
366
+ break;
367
+ case 2:
368
+ case 3:
369
+ NeoArray.remove(wrapperCls, 'neo-face-x');
370
+ break;
371
+ case 4:
372
+ case 5:
373
+ NeoArray.remove(wrapperCls, 'neo-face-y');
374
+ break;
375
+ }
371
376
 
372
- item.wrapperCls = wrapperCls
377
+ item.wrapperCls = wrapperCls
378
+ }
373
379
  }
374
380
 
375
381
  /**