@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.
package/data/cube/row/BaseRow.ts
CHANGED
|
@@ -99,8 +99,12 @@ export abstract class BaseRow {
|
|
|
99
99
|
let {children, view} = this,
|
|
100
100
|
{query} = view;
|
|
101
101
|
|
|
102
|
-
if (
|
|
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
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
|
|
22
|
-
|
|
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
|
-
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
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
|
-
###
|
|
47
|
+
### Server-side instance configuration
|
|
33
48
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
-
|
|
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
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
-
|
|
111
|
-
|
|
112
|
-
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
-
|
|
121
|
-
|
|
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.
|
|
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",
|