@docupace/ihub-config 1.1.24-admin.2 → 1.1.25
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/dist/config-extension.d.ts +0 -58
- package/dist/config-extension.d.ts.map +1 -1
- package/dist/config-extension.js +0 -2
- package/dist/config-extension.js.map +1 -1
- package/dist/config-service.d.ts +4 -13
- package/dist/config-service.d.ts.map +1 -1
- package/dist/config-service.js +22 -406
- package/dist/config-service.js.map +1 -1
- package/dist/mappers/config-mapper.d.ts.map +1 -1
- package/dist/mappers/config-mapper.js +0 -1
- package/dist/mappers/config-mapper.js.map +1 -1
- package/dist/model/graphs/config/fields.graphql +0 -30
- package/dist/model/graphs/config/menu.graphql +0 -6
- package/dist/model/graphs/config/page.graphql +1 -8
- package/dist/model/graphs/config/query.graphql +2 -9
- package/dist/model/graphs/config/selectOptions.graphql +0 -1
- package/dist/model/graphs/config/table.graphql +0 -26
- package/dist/types/graphql.d.ts +43 -17
- package/dist/types/graphql.d.ts.map +1 -1
- package/dist/types/graphql.js.map +1 -1
- package/model/graphs/config/fields.graphql +0 -30
- package/model/graphs/config/menu.graphql +0 -6
- package/model/graphs/config/page.graphql +1 -8
- package/model/graphs/config/query.graphql +2 -9
- package/model/graphs/config/selectOptions.graphql +0 -1
- package/model/graphs/config/table.graphql +0 -26
- package/package.json +3 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/types/graphql.ts"],"names":[],"mappings":"AA4CA,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,4CAAqB,CAAA;IACrB,wCAAiB,CAAA;IACjB,yDAAkC,CAAA;AACpC,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/types/graphql.ts"],"names":[],"mappings":"AA4CA,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,4CAAqB,CAAA;IACrB,wCAAiB,CAAA;IACjB,yDAAkC,CAAA;AACpC,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AA6eD,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,6BAAW,CAAA;AACb,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAyVD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,0BAAa,CAAA;AACf,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AA4ZD,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,qCAAe,CAAA;IACf,yCAAmB,CAAA;AACrB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAwBD,MAAM,CAAN,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,oCAAa,CAAA;IACb,sCAAe,CAAA;AACjB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,QAG9B"}
|
|
@@ -103,36 +103,6 @@ type ControlGroup implements IRowElement & IElement {
|
|
|
103
103
|
fields: [Fields!]!
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
# Renders the currently-linked records of a multi-valued reference attribute
|
|
107
|
-
# (`path`) as a table (`columns`, reusing Table's Column config), with a quick
|
|
108
|
-
# typeahead (`search`, reusing Table's SimpleSearch/QuerySelectOptions config)
|
|
109
|
-
# to find and add records of `dataType`, and a delete affordance per row.
|
|
110
|
-
# `rowMenuItems` (reusing Table's MenuItem config) adds further per-row actions,
|
|
111
|
-
# e.g. an `action: "details"` item with a `url` to navigate to that record's own
|
|
112
|
-
# details page.
|
|
113
|
-
type ReferenceTable implements IField & IRowElement & IElement {
|
|
114
|
-
cols: Int
|
|
115
|
-
defaultValue: String
|
|
116
|
-
disabledCondition: String
|
|
117
|
-
excludeFromQueryInput: Boolean
|
|
118
|
-
hidden: Boolean
|
|
119
|
-
label: String
|
|
120
|
-
name: String!
|
|
121
|
-
path: String!
|
|
122
|
-
readonly: Boolean
|
|
123
|
-
required: Boolean
|
|
124
|
-
requiredCondition: String
|
|
125
|
-
skipQuery: Boolean
|
|
126
|
-
visibilityCondition: String
|
|
127
|
-
dataType: String!
|
|
128
|
-
columns: [Column!]!
|
|
129
|
-
search: SimpleSearch
|
|
130
|
-
addLabel: String
|
|
131
|
-
confirmDelete: Boolean
|
|
132
|
-
maxRows: Int
|
|
133
|
-
rowMenuItems: [MenuItem!]
|
|
134
|
-
}
|
|
135
|
-
|
|
136
106
|
type PhoneField implements IField & IRowElement & IElement {
|
|
137
107
|
cols: Int
|
|
138
108
|
defaultValue: String
|
|
@@ -25,12 +25,6 @@ type MenuItem implements IMenuItem {
|
|
|
25
25
|
visibilityCondition: String
|
|
26
26
|
disabledCondition: String
|
|
27
27
|
config: JSON
|
|
28
|
-
"""
|
|
29
|
-
Child menu items. When present, this item acts as a collapsible group
|
|
30
|
-
header rather than a navigable leaf (consumers should treat a MenuItem
|
|
31
|
-
with `items` and no `url` as a group).
|
|
32
|
-
"""
|
|
33
|
-
items: [MenuItem!]
|
|
34
28
|
}
|
|
35
29
|
|
|
36
30
|
type ActionButton implements IMenuItem {
|
|
@@ -250,15 +250,8 @@ type Viewer {
|
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
type Breadcrumb {
|
|
253
|
-
label: String
|
|
253
|
+
label: String!
|
|
254
254
|
path: String
|
|
255
255
|
isLabelExpression: Boolean
|
|
256
256
|
isPathExpression: Boolean
|
|
257
|
-
"""
|
|
258
|
-
Dot-notation paths (e.g. "name", "folder.title") to try, in order, against
|
|
259
|
-
the already-fetched page record to compute the breadcrumb label. Used only
|
|
260
|
-
when `isLabelExpression` is not set. If none of the paths resolve to a
|
|
261
|
-
non-empty value, the client falls back to the record's `id`.
|
|
262
|
-
"""
|
|
263
|
-
valuePaths: [String!]
|
|
264
257
|
}
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
type PageQuery {
|
|
3
|
-
|
|
4
|
-
impersonateRoleId / impersonateGeneral: preview this page's config as
|
|
5
|
-
someone else would see it — either a specific role (impersonateRoleId)
|
|
6
|
-
or the site default with no role/personal override at all
|
|
7
|
-
(impersonateGeneral) — restricted to admins by the host's identity
|
|
8
|
-
resolution (see docupace-graphql-server's resolveCurrentIdentity), which
|
|
9
|
-
throws for a non-admin caller.
|
|
10
|
-
"""
|
|
11
|
-
getPageConfig(path: String, context: JSON, impersonateRoleId: ID, impersonateGeneral: Boolean): Page
|
|
3
|
+
getPageConfig(path: String, context: JSON): Page
|
|
12
4
|
getAIConfig(path: String, context: JSON): JSON
|
|
13
5
|
}
|
|
14
6
|
|
|
@@ -83,6 +75,7 @@ type SeedConfigResult {
|
|
|
83
75
|
doNotUpdate: Boolean
|
|
84
76
|
doNotDelete: Boolean
|
|
85
77
|
uniqueColumns: [String]
|
|
78
|
+
dependsOn: [String]
|
|
86
79
|
}
|
|
87
80
|
|
|
88
81
|
type GQLQuery {
|
|
@@ -9,7 +9,6 @@ type SelectOptionsFilter {
|
|
|
9
9
|
type QuerySelectOptions implements ISelectOptions {
|
|
10
10
|
type: String
|
|
11
11
|
labelProp: String # defaults to "name" in ui
|
|
12
|
-
labelExpression: String # JS expression evaluated against each option (e.g. "`${option.name} (${option.internalId})`"); takes precedence over labelProp when set
|
|
13
12
|
valueProp: String # defaults to "id" in ui
|
|
14
13
|
queryName: String!
|
|
15
14
|
variableDefinitions: JSON
|
|
@@ -34,19 +34,6 @@ interface ITable {
|
|
|
34
34
|
expandable: Expandable
|
|
35
35
|
totals: [TotalsItem!]
|
|
36
36
|
config: JSON
|
|
37
|
-
configPath: String
|
|
38
|
-
configurableAttributes: [ConfigurableAttribute!]
|
|
39
|
-
"""Admin-defined columns not present in this table's own base `columns`, available to add via the Configure Columns dialog. Site/tenant-scoped catalog — see `$.predefinedColumns` under `configurableAttributes`."""
|
|
40
|
-
predefinedColumns: [Column!]
|
|
41
|
-
"""Admin-defined filter criteria not present in this table's own base `filter.criteria`, available to add via the Configure Filters dialog. Site/tenant-scoped catalog — see `$.predefinedFilters` under `configurableAttributes`."""
|
|
42
|
-
predefinedFilters: [TableCriteria!]
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
"""One overridable sub-element of a config object identified by `configPath` — see the parent's own `configPath` field for how the two combine (`${configPath}#${configSubPath}`)."""
|
|
46
|
-
type ConfigurableAttribute {
|
|
47
|
-
name: String! # e.g. "columns", "filter" — matches the field name on the parent type
|
|
48
|
-
configPath: String! # copy of the parent object's own configPath, for convenience
|
|
49
|
-
configSubPath: String! # JSONPath relative to the parent object, e.g. "$.columns"
|
|
50
37
|
}
|
|
51
38
|
|
|
52
39
|
type TotalsItem {
|
|
@@ -104,8 +91,6 @@ enum TablePinnedPosition {
|
|
|
104
91
|
|
|
105
92
|
type Toolbar {
|
|
106
93
|
columns: ToolbarColumns
|
|
107
|
-
configureColumns: ToolbarColumns
|
|
108
|
-
configureFilters: ToolbarColumns
|
|
109
94
|
}
|
|
110
95
|
|
|
111
96
|
type ToolbarColumns {
|
|
@@ -172,11 +157,6 @@ type TableCriteria {
|
|
|
172
157
|
selectOptions: ISelectOptions
|
|
173
158
|
min: Float
|
|
174
159
|
max: Float
|
|
175
|
-
visible: Boolean
|
|
176
|
-
"""Set when this criterion was added by `$ref`-referencing a predefined/base criterion (e.g. `"#$.predefinedFilters[?(@.name=='status')]"`) rather than being copied inline — see the config-path override merge in `config-service.ts`. Clients that re-save this criterion unchanged should keep sending the same `$ref` (as this value) rather than flattening it into a full copy."""
|
|
177
|
-
ref: String
|
|
178
|
-
"""True when this criterion would still show up — present by name *and* not hidden — without the current scope's own override, i.e. from a broader layer (a role/site override, or the table's own base template `filter.criteria`). Drives two things in the Configure Filters editor. Hide-vs-delete: "remove" must hide (`visible: false`) an inherited criterion, since deleting it from the override would just have it reappear from the broader layer on the next read, while a non-inherited one can be deleted outright. And pin-on-add: re-adding a *non*-inherited criterion must write an explicit `visible: true`, or the broader layer's `visible: false` is inherited per-attribute by the name-keyed merge and the criterion stays invisible however it's re-added. Computed fresh on every read in `config-service.ts`'s `applyConfigPathOverride` against the layers below the identity's own scope tier (`ConfigurationOverrideResult.inheritedSubPaths`), never persisted."""
|
|
179
|
-
inherited: Boolean
|
|
180
160
|
}
|
|
181
161
|
|
|
182
162
|
enum TableFilterVariant {
|
|
@@ -190,18 +170,12 @@ type Column {
|
|
|
190
170
|
visible: Boolean
|
|
191
171
|
paths: [String!]
|
|
192
172
|
expression: String
|
|
193
|
-
"""Which predefined formatter (if any) generated `expression` — e.g. `"commaList"`, `"custom"` — see `EXPRESSION_FORMATTERS`/`CUSTOM_FORMATTER_ID` in docupace-ui-main's `expressionGeneration.ts`. Absent for the raw/no-formatting default, which stores neither this nor `expression` at all. Without this field, a column's `expression` round-trips but the formatter that produced it doesn't, so the Configure Columns editor can't tell "built from a known formatter" apart from "hand-authored custom script" on reload and always falls back to showing the latter."""
|
|
194
|
-
formatterName: String
|
|
195
173
|
component: String
|
|
196
174
|
sortable: Boolean
|
|
197
175
|
flex: Float
|
|
198
176
|
pinned: TablePinnedPosition
|
|
199
177
|
config: JSON
|
|
200
178
|
filter: ColumnFilter
|
|
201
|
-
"""Set when this column was added by `$ref`-referencing a predefined/base column (e.g. `"#$.predefinedColumns[?(@.name=='email')]"`) rather than being copied inline — see the config-path override merge in `config-service.ts`. Clients that re-save this column unchanged should keep sending the same `$ref` (as this value) rather than flattening it into a full copy."""
|
|
202
|
-
ref: String
|
|
203
|
-
"""True when this column would still show up — present by name *and* not hidden — without the current scope's own override, i.e. from a broader layer (a role/site override, or the table's own base template `columns`). Drives hide-vs-delete and pin-on-add in the Configure Columns editor — see `TableCriteria.inherited`'s doc comment for the full reasoning, identical here."""
|
|
204
|
-
inherited: Boolean
|
|
205
179
|
}
|
|
206
180
|
|
|
207
181
|
type ColumnFilter {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docupace/ihub-config",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.25",
|
|
4
4
|
"description": "Reusable config GraphQL extension and standalone server",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -13,13 +13,12 @@
|
|
|
13
13
|
"license": "ISC",
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@docupace/ihub-cache": "1.0.1",
|
|
16
|
-
"@docupace/ihub-core": "
|
|
16
|
+
"@docupace/ihub-core": "0.0.114-alpha.1",
|
|
17
17
|
"axios": "^1.13.5",
|
|
18
18
|
"cross-env": "^7.0.3",
|
|
19
19
|
"dotenv": "^16.4.1",
|
|
20
|
-
"graphql": "^16.
|
|
20
|
+
"graphql": "^16.8.1",
|
|
21
21
|
"js-yaml": "^4.1.0",
|
|
22
|
-
"jsonpath": "^1.1.1",
|
|
23
22
|
"lodash": "^4.17.21",
|
|
24
23
|
"pino": "^10.3.1",
|
|
25
24
|
"rimraf": "^6.1.3",
|
|
@@ -31,7 +30,6 @@
|
|
|
31
30
|
"@graphql-codegen/typescript-resolvers": "4.0.6",
|
|
32
31
|
"@types/jest": "^30.0.0",
|
|
33
32
|
"@types/js-yaml": "^4.0.9",
|
|
34
|
-
"@types/jsonpath": "^0.2.4",
|
|
35
33
|
"@types/lodash": "^4.17.7",
|
|
36
34
|
"@types/node": "^20.10.6",
|
|
37
35
|
"@typescript-eslint/eslint-plugin": "^7.10.0",
|