@onehat/ui 0.2.3 → 0.2.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onehat/ui",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Base UI for OneHat apps",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -493,26 +493,26 @@ function disableRequiredYupFields(validator) {
493
493
  return null;
494
494
  }
495
495
 
496
- const nextSchema = validator.clone();
497
- return nextSchema.withMutation((next) => {
498
- if (typeof next.fields === 'object' && next.fields != null) {
499
- for (const key in next.fields) {
500
- const nestedField = next.fields[key];
496
+ // const nextSchema = validator.clone();
497
+ // return nextSchema.withMutation((next) => {
498
+ // if (typeof next.fields === 'object' && next.fields != null) {
499
+ // for (const key in next.fields) {
500
+ // const nestedField = next.fields[key];
501
501
 
502
- let nestedFieldNext = nestedField.notRequired();
502
+ // let nestedFieldNext = nestedField.notRequired();
503
503
 
504
- if (Array.isArray(nestedField.conditions) && nestedField.conditions.length > 0) {
505
- // Next is done to disable required() inside a condition
506
- // https://github.com/jquense/yup/issues/1002
507
- nestedFieldNext = nestedFieldNext.when('whatever', (_: unknown, schema: yup.AnySchema) =>
508
- schema.notRequired(),
509
- );
510
- }
504
+ // if (Array.isArray(nestedField.conditions) && nestedField.conditions.length > 0) {
505
+ // // Next is done to disable required() inside a condition
506
+ // // https://github.com/jquense/yup/issues/1002
507
+ // nestedFieldNext = nestedFieldNext.when('whatever', (_: unknown, schema: yup.AnySchema) =>
508
+ // schema.notRequired(),
509
+ // );
510
+ // }
511
511
 
512
- next.fields[key] = nestedFieldNext;
513
- }
514
- }
515
- });
512
+ // next.fields[key] = nestedFieldNext;
513
+ // }
514
+ // }
515
+ // });
516
516
  }
517
517
  function getNullFieldValues(initialValues, Repository) {
518
518
  const ret = {};
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  HORIZONTAL,
10
10
  VERTICAL,
11
- } from '../../Constants/Directions';
11
+ } from '../../Constants/Directions.js';
12
12
  import {
13
13
  UI_MODE_WEB,
14
14
  UI_MODE_REACT_NATIVE,
@@ -0,0 +1,96 @@
1
+ import {
2
+ Column,
3
+ } from 'native-base';
4
+ // import AccordionGridPanel from '../Components/Panel/AccordionGridPanel.js';
5
+ import ArrayCheckboxGroup from './Form/Field/CheckboxGroup/ArrayCheckboxGroup.js';
6
+ import ArrayCombo from './Form/Field/Combo/ArrayCombo.js';
7
+ import ArrayRadioGroup from './Form/Field/RadioGroup/ArrayRadioGroup.js';
8
+ // import BackButton from '../Components/Buttons/BackButton.js';
9
+ import Blank from './Blank.js';
10
+ import BooleanCombo from './Form/Field/Combo/BooleanCombo.js';
11
+ // import CartButtonWithBadge from '../Components/Buttons/CartButtonWithBadge.js';
12
+ import CheckboxGroup from './Form/Field/CheckboxGroup/CheckboxGroup.js';
13
+ import CKEditor from './Form/Field/CKEditor/CKEditor.js';
14
+ import Color from './Form/Field/Color.js';
15
+ import Combo from './Form/Field/Combo/Combo.js';
16
+ // import ComboEditor from '../Components/Form/Field/Combo/ComboEditor.js';
17
+ import Container from './Container/Container.js';
18
+ import DataMgt from './Screens/DataMgt.js';
19
+ import Date from './Form/Field/Date.js';
20
+ import DateRange from './Filter/DateRange.js';
21
+ import DisplayField from './Form/Field/DisplayField.js';
22
+ import FieldSet from './Form/FieldSet.js';
23
+ import File from './Form/Field/File.js';
24
+ import FiltersForm from './Form/FiltersForm.js';
25
+ // import FiltersToolbar from '../Components/Toolbar/FiltersToolbar.js';
26
+ import Form from './Form/Form.js';
27
+ import Grid from './Grid/Grid.js';
28
+ import GridPanel from './Panel/GridPanel.js';
29
+ import IconButton from './Buttons/IconButton.js';
30
+ import Input from './Form/Field/Input.js';
31
+ import IntervalsCombo from './Form/Field/Combo/IntervalsCombo.js';
32
+ import Label from './Form/Label.js';
33
+ import MonthsCombo from './Form/Field/Combo/MonthsCombo.js';
34
+ import Number from './Form/Field/Number.js';
35
+ import NumberRange from './Filter/NumberRange.js';
36
+ import Panel from './Panel/Panel.js';
37
+ // import Picker from '../Components/Panel/Picker.js';
38
+ import RadioGroup from './Form/Field/RadioGroup/RadioGroup.js';
39
+ import TabPanel from './Panel/TabPanel.js';
40
+ import Tag from './Form/Field/Combo/Tag.js';
41
+ import TextArea from './Form/Field/TextArea.js';
42
+ import Text from './Form/Field/Text.js';
43
+ import TimezonesCombo from './Form/Field/Combo/TimezonesCombo.js';
44
+ import Toggle from './Form/Field/Toggle.js';
45
+ import Toolbar from './Toolbar/Toolbar.js';
46
+ import YearsCombo from './Form/Field/Combo/YearsCombo.js';
47
+ import _ from 'lodash';
48
+
49
+ const components = {
50
+ // AccordionGridPanel,
51
+ ArrayCheckboxGroup,
52
+ ArrayCombo,
53
+ ArrayRadioGroup,
54
+ // BackButton,
55
+ Blank,
56
+ BooleanCombo,
57
+ // CartButtonWithBadge,
58
+ CheckboxGroup,
59
+ CKEditor,
60
+ Color,
61
+ Column,
62
+ Combo,
63
+ // ComboEditor,
64
+ Container,
65
+ DataMgt,
66
+ Date,
67
+ DateRange,
68
+ DisplayField,
69
+ FieldSet,
70
+ File,
71
+ FiltersForm,
72
+ // FiltersToolbar,
73
+ Form,
74
+ Grid,
75
+ GridPanel,
76
+ IconButton,
77
+ Input,
78
+ IntervalsCombo,
79
+ Label,
80
+ MonthsCombo,
81
+ Number,
82
+ NumberRange,
83
+ Panel,
84
+ // Picker,
85
+ RadioGroup,
86
+ TabPanel,
87
+ Tag,
88
+ Text,
89
+ TextArea,
90
+ TimezonesCombo,
91
+ Toggle,
92
+ Toolbar,
93
+ YearsCombo,
94
+ };
95
+
96
+ export default components;
@@ -1,106 +1,11 @@
1
- import {
2
- Column,
3
- } from 'native-base';
4
- // import AccordionGridPanel from '../Components/Panel/AccordionGridPanel.js';
5
- import ArrayCheckboxGroup from '../Components/Form/Field/CheckboxGroup/ArrayCheckboxGroup.js';
6
- import ArrayCombo from '../Components/Form/Field/Combo/ArrayCombo.js';
7
- import ArrayRadioGroup from '../Components/Form/Field/RadioGroup/ArrayRadioGroup.js';
8
- // import BackButton from '../Components/Buttons/BackButton.js';
9
- import Blank from '../Components/Blank.js';
10
- import BooleanCombo from '../Components/Form/Field/Combo/BooleanCombo.js';
11
- // import CartButtonWithBadge from '../Components/Buttons/CartButtonWithBadge.js';
12
- import CheckboxGroup from '../Components/Form/Field/CheckboxGroup/CheckboxGroup.js';
13
- import CKEditor from '../Components/Form/Field/CKEditor/CKEditor.js';
14
- import Color from '../Components/Form/Field/Color.js';
15
- import Combo from '../Components/Form/Field/Combo/Combo.js';
16
- // import ComboEditor from '../Components/Form/Field/Combo/ComboEditor.js';
17
- import Container from '../Components/Container/Container.js';
18
- import DataMgt from '../Components/Screens/DataMgt.js';
19
- import Date from '../Components/Form/Field/Date.js';
20
- import DateRange from '../Components/Filter/DateRange.js';
21
- import DisplayField from '../Components/Form/Field/DisplayField.js';
22
- import FieldSet from '../Components/Form/FieldSet.js';
23
- import File from '../Components/Form/Field/File.js';
24
- import FiltersForm from '../Components/Form/FiltersForm.js';
25
- // import FiltersToolbar from '../Components/Toolbar/FiltersToolbar.js';
26
- import Form from '../Components/Form/Form.js';
27
- import Grid from '../Components/Grid/Grid.js';
28
- import GridPanel from '../Components/Panel/GridPanel.js';
29
- import IconButton from '../Components/Buttons/IconButton.js';
30
- import Input from '../Components/Form/Field/Input.js';
31
- import IntervalsCombo from '../Components/Form/Field/Combo/IntervalsCombo.js';
32
- import Label from '../Components/Form/Label.js';
33
- import MonthsCombo from '../Components/Form/Field/Combo/MonthsCombo.js';
34
- import Number from '../Components/Form/Field/Number.js';
35
- import NumberRange from '../Components/Filter/NumberRange.js';
36
- import Panel from '../Components/Panel/Panel.js';
37
- // import Picker from '../Components/Panel/Picker.js';
38
- import RadioGroup from '../Components/Form/Field/RadioGroup/RadioGroup.js';
39
- import TabPanel from '../Components/Panel/TabPanel.js';
40
- import Tag from '../Components/Form/Field/Combo/Tag.js';
41
- import TextArea from '../Components/Form/Field/TextArea.js';
42
- import Text from '../Components/Form/Field/Text.js';
43
- import TimezonesCombo from '../Components/Form/Field/Combo/TimezonesCombo.js';
44
- import Toggle from '../Components/Form/Field/Toggle.js';
45
- import Toolbar from '../Components/Toolbar/Toolbar.js';
46
- import YearsCombo from '../Components/Form/Field/Combo/YearsCombo.js';
47
- import _ from 'lodash';
48
-
49
- const
50
- mapping = {
51
- // AccordionGridPanel,
52
- ArrayCheckboxGroup,
53
- ArrayCombo,
54
- ArrayRadioGroup,
55
- // BackButton,
56
- Blank,
57
- BooleanCombo,
58
- // CartButtonWithBadge,
59
- CheckboxGroup,
60
- CKEditor,
61
- Color,
62
- Column,
63
- Combo,
64
- // ComboEditor,
65
- Container,
66
- DataMgt,
67
- Date,
68
- DateRange,
69
- DisplayField,
70
- FieldSet,
71
- File,
72
- FiltersForm,
73
- // FiltersToolbar,
74
- Form,
75
- Grid,
76
- GridPanel,
77
- IconButton,
78
- Input,
79
- IntervalsCombo,
80
- Label,
81
- MonthsCombo,
82
- Number,
83
- NumberRange,
84
- Panel,
85
- // Picker,
86
- RadioGroup,
87
- TabPanel,
88
- Tag,
89
- Text,
90
- TextArea,
91
- TimezonesCombo,
92
- Toggle,
93
- Toolbar,
94
- YearsCombo,
95
- };
1
+ import UiGlobals from '../UiGlobals.js';
96
2
 
97
3
  export default function getComponentFromType(type) {
98
4
  if (_.isString(type)) {
99
- return mapping[type];
5
+ if (UiGlobals.components[type]) {
6
+ return UiGlobals.components[type];
7
+ }
8
+ throw new Error('No mapping for ' + type + ' exists!');
100
9
  }
101
10
  return type;
102
11
  }
103
-
104
- export function registerComponents(newMapping) {
105
- _.merge(mapping, newMapping);
106
- }
@@ -0,0 +1,5 @@
1
+ import UiGlobals from '../UiGlobals.js';
2
+
3
+ export default function registerComponents(newComponents) {
4
+ _.merge(UiGlobals.components, newComponents);
5
+ }
package/src/OneHatUi.js CHANGED
@@ -1,6 +1,8 @@
1
1
  /** @module OneHatUi */
2
2
 
3
3
  import EventEmitter from '@onehat/events';
4
+ import Components from './Components/index.js';
5
+ import UiGlobals from './UiGlobals.js';
4
6
  import _ from 'lodash';
5
7
 
6
8
  /**
@@ -11,6 +13,7 @@ export class OneHatUi extends EventEmitter {
11
13
  constructor() {
12
14
  super(...arguments);
13
15
 
16
+ UiGlobals.components = Components;
14
17
 
15
18
  this.registerEvents([
16
19
  'error',
@@ -0,0 +1,3 @@
1
+ const Globals = {};
2
+
3
+ export default Globals;