@xh/hoist 76.0.0-SNAPSHOT.1755181987538 → 76.0.0-SNAPSHOT.1755386207928

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.
@@ -99,8 +99,12 @@ export abstract class BaseRow {
99
99
  let {children, view} = this,
100
100
  {query} = view;
101
101
 
102
- if (!children || (children[0].isLeaf && !query.includeLeaves && !query.provideLeaves))
102
+ if (
103
+ isEmpty(children) ||
104
+ (children[0].isLeaf && !query.includeLeaves && !query.provideLeaves)
105
+ ) {
103
106
  return null;
107
+ }
104
108
 
105
109
  // Skip all children in a locked node
106
110
  if (query.lockFn?.(this as any)) {
@@ -4,9 +4,18 @@ The information below applies to Hoist development generally and covers the setu
4
4
  development environment for both a [Hoist Core](https://github.com/xh/toolbox) server and a Hoist
5
5
  React client application.
6
6
 
7
- [Toolbox](https://github.com/xh/toolbox) is our reference app for Hoist development. Please also
8
- refer to [that project's README](https://github.com/xh/toolbox/blob/develop/README.md) for
9
- additional, Toolbox-specific setup info.
7
+ [Toolbox](https://github.com/xh/toolbox) is our reference app for Hoist development and can be a
8
+ useful project to check out and run locally to explore Hoist development. Please refer
9
+ to [that project's README](https://github.com/xh/toolbox/blob/develop/README.md) for additional,
10
+ Toolbox-specific setup info.
11
+
12
+ ## tldr;
13
+
14
+ Development of Hoist applications requires:
15
+
16
+ * Git
17
+ * JDK 17
18
+ * Node (LTS or other recent) + `npm` (bundled with Node) or `yarn` (installable via `npm`)
10
19
 
11
20
  ## Git
12
21
 
@@ -16,27 +25,34 @@ via [Homebrew](https://brew.sh/).
16
25
 
17
26
  ## Server-side prerequisites
18
27
 
19
- ### Java 8 JDK
28
+ Hoist Core is the server-side plugin powering Hoist React applications.
29
+ See [that project's README](https://github.com/xh/hoist-core/blob/develop/README.md) for more
30
+ detailed information about the configuration and use of Hoist's Grails server.
20
31
 
21
- The one common pre-requisite for running the server-side of a Hoist project is a Java 8 JDK. Either
22
- an Oracle or any common OpenJDK distribution should be fine.
32
+ ### Java 17 JDK
33
+
34
+ The one common pre-requisite for running the server-side of a Hoist project is a Java 17 JDK. Any
35
+ common OpenJDK distribution should work. XH typically uses the JetBrains distro, which has
36
+ improved support for hot reloading, helpful for Hoist projects with a significant amount of server-
37
+ side development.
23
38
 
24
39
  If using IntelliJ (see below), consider having the IDE download and update a JDK for you:
25
40
 
26
- - From the "File > New Projects Settings" menu, open "Structure for New Projects..." If you have an
27
- existing project open, you can also select "File > Project Structure" to modify that project.
28
- - Select the "SDKs" option in the navigation tree.
29
- - Click the + button and select "Download JDK..."
30
- - Select version 8/1.8 - a known-good option to choose is the "Azul" open source SDK.
41
+ - From the "File > New Projects Settings" menu, open "Structure for New Projects..." If you have an
42
+ existing project open, you can also select "File > Project Structure" to modify that project.
43
+ - Select the "SDKs" option in the navigation tree.
44
+ - Click the + button and select "Download JDK..."
45
+ - Select version 17 and a distro of your choice (JetBrains Runtime is a good default).
31
46
 
32
- ### Other server-side requirements
47
+ ### Server-side instance configuration
33
48
 
34
- Specific projects can have their own additional requirements for running their server-side
35
- application, typically around database access or connection configuration. Before starting the
36
- server-side of a project for the first time, ensure you have the required instance configuration
37
- YAML file in place to tell your app where and how to connect to its database.
49
+ Before starting the server-side of a project for the first time, ensure you have copied the
50
+ project's `template.env` to `.env` and filled in any missing instance configuration values required
51
+ to provide environment-specific database connection and service account details.
38
52
 
39
- For Toolbox development, see that project's README for TB-specific database info.
53
+ Note that some older projects might use a YAML config file in place of `.env` - if you don't see a
54
+ `.env.template` file in the root of your project repo, this is likely the case. Consult another
55
+ developer on the project or ask XH for assistance.
40
56
 
41
57
  ## Client-side prerequisites
42
58
 
@@ -45,28 +61,26 @@ For Toolbox development, see that project's README for TB-specific database info
45
61
  A recent version of Node.js is required to build and run the client-side component of the
46
62
  application (via Webpack and webpack-dev-server).
47
63
 
48
- - The latest (or any recent) LTS build is recommended - you can download directly from
49
- https://nodejs.dev/ or use a tool (recommended) such as Homebrew or NVM (node-version-manager) to
50
- install and update your local node versions.
51
- - Ensure that node is on your path via `node --version`.
64
+ - The latest (or any recent) LTS build is recommended - you can download directly from
65
+ https://nodejs.dev/ or use a tool (recommended) such as Homebrew or NVM (node-version-manager) to
66
+ install and update your local node versions.
67
+ - Ensure that node is on your path via `node --version`.
52
68
 
53
69
  ### Yarn
54
70
 
55
- XH uses Yarn for JS package management. To reduce variability across workstations, we typically
56
- include an updated, portable version of yarn bundled within each project, but a local yarn install
57
- is still required to detect and run the portable copy.
58
-
59
- - The easiest way to install yarn is with npm (🤯): `npm i -g yarn`
60
- - Once installed, verify it can be run globally with `yarn --version`
61
- - Within the `client-app` directory of a Hoist app such as Toolbox, run `yarn` to download, install,
62
- and build all client-side dependencies. (Note that `yarn` is a shortcut for `yarn install` - they
63
- do the same thing.)
71
+ XH uses both `yarn` (v1) and `npm` (recent/lts) for JS package management - Hoist has no requirement
72
+ for one over the other, although `npm` has been found to work better in some corporate environments
73
+ with intensive workstation and/or network-level antimalware and other file scanning. The important
74
+ thing is to decide on one or the other for your project and ensure all developers use the same tool.
64
75
 
65
- ### Other client-side requirements
76
+ When using `yarn`, we typically include an updated, portable version of yarn bundled within each
77
+ project, but a local yarn install is still required to detect and run the portable copy:
66
78
 
67
- Some Hoist React dependencies can require a post-install build step, which looks for and can require
68
- some supporting build tools (such as Python) on your local workstation. Most of the time this works
69
- seamlessly, but contact the XH team if you receive any post-install errors from these dependencies.
79
+ - The easiest way to install yarn is with npm (🤯): `npm i -g yarn`
80
+ - Once installed, verify it can be run globally with `yarn --version`
81
+ - Within the `client-app` directory of a Hoist app such as Toolbox, run `yarn` to download, install,
82
+ and build all client-side dependencies. (Note that `yarn` is a shortcut for `yarn install` - they
83
+ do the same thing.)
70
84
 
71
85
  ## JetBrains IntelliJ
72
86
 
@@ -98,27 +112,27 @@ beyond the scope of this doc. There are a few recommended settings to highlight,
98
112
 
99
113
  From within the IDE's general preferences / settings dialog:
100
114
 
101
- - Navigate to _Languages & Frameworks > Javascript_:
102
- - Ensure "ECMAScript 6+" selected in the top-level of this section.
103
- - Expand _Webpack_ - if doing local Toolbox + Hoist React development, you can choose to configure
104
- "Manually" and point IntelliJ at a stub `webpack.config.intellij.js` checked-in at the root of
105
- your local hoist-react project. This will cause IntelliJ to resolve any auto-suggestions or
106
- context clues to the local versions of the Hoist classes and utils.
107
- - Expand _Code Quality Tools > Eslint_ - select "Automatic" configuration to enable eslint to run
108
- and monitor your code as you update it. Note that you will need to have run `yarn` to install
109
- your local client-side dependencies first.
110
- - Navigate to _Languages & Frameworks > Node.js and NPM_:
111
- - Ensure the IDE has detected the version of Node you wish to use.
112
- - You can also specify yarn as your package manager, if you wish to use the IDEs built-in yarn
113
- integration.
114
- - Navigate to _Languages & Frameworks > Stylesheets > Stylelint_:
115
- - Enable with "Automatic configuration" to turn on local support for Stylelint, if using in your
116
- project.
117
- - Navigate to _Version Control > Git_ - verify the IDE has detected your local git and select
118
- "Update method: Rebase" to avoid introducing unnecessary merge commits when updating your local
119
- repo.
120
- - The GitToolBox plugin is a useful add-on to IntelliJ, with several useful enhancements to
121
- version control support.
115
+ - Navigate to `Languages & Frameworks > Javascript`:
116
+ - Ensure "ECMAScript 6+" selected in the top-level of this section.
117
+ - Expand `Webpack` - *if doing local Toolbox + Hoist React development*, you can choose to
118
+ configure "Manually" and point IntelliJ at a stub `webpack.config.intellij.js` checked-in at
119
+ the root of your local hoist-react project. This will cause IntelliJ to resolve any
120
+ auto-suggestions or context clues to the local versions of the Hoist classes and utils.
121
+ - Expand `Code Quality Tools > Eslint` - select "Automatic" configuration to enable eslint to
122
+ run and monitor your code as you update it. Note that you will need to have run `yarn` to
123
+ install your local client-side dependencies first.
124
+ - If using Prettier in your project, enable that as well in the dedicated `Prettier` section.
125
+ - Navigate to `Languages & Frameworks > Node.js and NPM`:
126
+ - Ensure the IDE has detected the version of Node you wish to use.
127
+ - You can also specify yarn as your package manager, if you wish to use the IDEs built-in yarn
128
+ integration.
129
+ - Navigate to `Languages & Frameworks > Stylesheets > Stylelint`:
130
+ - Enable with "Automatic configuration" to turn on local support for Stylelint, if using in your
131
+ project.
132
+ - Navigate to `Version Control > Git` - verify the IDE has detected your local git and select
133
+ "Update method: Rebase" to avoid unnecessary merge commits when updating your local repo.
134
+ - The GitToolBox plugin is a useful add-on to IntelliJ, with several useful enhancements to
135
+ version control support.
122
136
 
123
137
  ------------------------------------------
124
138
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xh/hoist",
3
- "version": "76.0.0-SNAPSHOT.1755181987538",
3
+ "version": "76.0.0-SNAPSHOT.1755386207928",
4
4
  "description": "Hoist add-on for building and deploying React Applications.",
5
5
  "repository": "github:xh/hoist-react",
6
6
  "homepage": "https://xh.io",