@sap/ux-specification 1.142.2 → 1.142.3
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/CHANGELOG.md +86 -43
- package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
- package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
- package/dist/documentation/v2/v2-ListReport.html +2 -2
- package/dist/documentation/v2/v2-ListReportNew.html +2 -2
- package/dist/documentation/v2/v2-ObjectPage.html +2 -2
- package/dist/documentation/v2/v2-OverviewPage.html +2 -2
- package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
- package/dist/documentation/v4/v4-BuildingBlocks.html +2 -2
- package/dist/documentation/v4/v4-FreestylePage.html +2 -2
- package/dist/documentation/v4/v4-ListReport.html +2 -2
- package/dist/documentation/v4/v4-ObjectPage.html +2 -2
- package/dist/index-min.js +265 -261
- package/dist/index-min.js.map +4 -4
- package/dist/schemas/v2/AnalyticalListPageConfig.json +3 -3
- package/dist/schemas/v2/ListReportConfig.json +5 -5
- package/dist/schemas/v2/ListReportNewConfig.json +1 -1
- package/dist/schemas/v2/ObjectPageConfig.json +5 -5
- package/dist/schemas/v4/ApplicationV4.json +1 -1
- package/dist/schemas/v4/BuildingBlocksConfig.json +13 -1
- package/dist/schemas/v4/ListReportConfig.json +24 -6
- package/dist/schemas/v4/ObjectPageConfig.json +32 -8
- package/dist/specification/package.json +13 -11
- package/dist/specification/scripts/extractDocu.js +18 -1
- package/dist/specification/scripts/extractDocu.js.map +1 -1
- package/dist/specification/scripts/generate-validity-report.d.ts +15 -0
- package/dist/specification/scripts/generate-validity-report.d.ts.map +1 -0
- package/dist/specification/scripts/generate-validity-report.js +367 -0
- package/dist/specification/scripts/generate-validity-report.js.map +1 -0
- package/dist/specification/scripts/macros/corrections.d.ts.map +1 -1
- package/dist/specification/scripts/macros/corrections.js +3 -0
- package/dist/specification/scripts/macros/corrections.js.map +1 -1
- package/dist/specification/src/api.js +1 -1
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts +503 -0
- package/dist/specification/src/sync/common/decoration/decorator-paths.d.ts.map +1 -0
- package/dist/specification/src/sync/common/decoration/decorator-paths.js +497 -0
- package/dist/specification/src/sync/common/decoration/decorator-paths.js.map +1 -0
- package/dist/specification/src/sync/common/decoration/decorators.d.ts +149 -23
- package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.js +369 -74
- package/dist/specification/src/sync/common/decoration/decorators.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/index.d.ts +1 -0
- package/dist/specification/src/sync/common/decoration/index.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/index.js +1 -0
- package/dist/specification/src/sync/common/decoration/index.js.map +1 -1
- package/dist/specification/src/sync/common/dist_tag.json +8 -3
- package/dist/specification/src/sync/common/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/objectPage.js +3 -1
- package/dist/specification/src/sync/common/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/common/i18n.json +2 -1
- package/dist/specification/src/sync/common/utils.d.ts +22 -6
- package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/utils.js +122 -18
- package/dist/specification/src/sync/common/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js +2 -0
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/listReport.js +3 -1
- package/dist/specification/src/sync/v2/generate/listReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.js +2 -0
- package/dist/specification/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/overviewPage.d.ts +1 -9
- package/dist/specification/src/sync/v2/generate/overviewPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/overviewPage.js +30 -1
- package/dist/specification/src/sync/v2/generate/overviewPage.js.map +1 -1
- package/dist/specification/src/sync/v2/import/app/appProvider.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/app/appProvider.js +2 -0
- package/dist/specification/src/sync/v2/import/app/appProvider.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.d.ts +2 -1
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.js +5 -0
- package/dist/specification/src/sync/v2/import/pages/analyticalListPage.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/listReport.d.ts +2 -1
- package/dist/specification/src/sync/v2/import/pages/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/listReport.js +5 -0
- package/dist/specification/src/sync/v2/import/pages/listReport.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/objectPage.js +2 -1
- package/dist/specification/src/sync/v2/import/pages/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/import/utils.d.ts +28 -1
- package/dist/specification/src/sync/v2/import/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/utils.js +37 -0
- package/dist/specification/src/sync/v2/import/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/utils.d.ts +12 -2
- package/dist/specification/src/sync/v2/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/utils.js +19 -2
- package/dist/specification/src/sync/v2/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/application.d.ts +20 -2
- package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/application.js +27 -2
- package/dist/specification/src/sync/v4/application.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.js +2 -1
- package/dist/specification/src/sync/v4/export/controls/FilterBar.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Header.d.ts +4 -3
- package/dist/specification/src/sync/v4/export/controls/Header.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Header.js +7 -3
- package/dist/specification/src/sync/v4/export/controls/Header.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.js +7 -0
- package/dist/specification/src/sync/v4/export/controls/HeaderAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.js +2 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js +0 -13
- package/dist/specification/src/sync/v4/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts +24 -15
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js +40 -46
- package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/TableColumn.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/TableColumn.js +2 -2
- package/dist/specification/src/sync/v4/export/controls/TableColumn.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +2 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/export.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/export.js +25 -3
- package/dist/specification/src/sync/v4/export/export.js.map +1 -1
- package/dist/specification/src/sync/v4/export/pages/ListReport.js +1 -1
- package/dist/specification/src/sync/v4/export/pages/ListReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/actions.d.ts +1 -1
- package/dist/specification/src/sync/v4/generate/actions.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js +10 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/index.d.ts +1 -1
- package/dist/specification/src/sync/v4/generate/index.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/index.js +1 -1
- package/dist/specification/src/sync/v4/generate/index.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts +73 -0
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js +354 -0
- package/dist/specification/src/sync/v4/generate/list-report/ListReportUtils.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/{listReport.d.ts → list-report/listReport.d.ts} +22 -15
- package/dist/specification/src/sync/v4/generate/list-report/listReport.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/generate/{listReport.js → list-report/listReport.js} +115 -69
- package/dist/specification/src/sync/v4/generate/list-report/listReport.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +142 -44
- package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/listReport.js +2 -1
- package/dist/specification/src/sync/v4/import/pages/listReport.js.map +1 -1
- package/dist/specification/src/sync/v4/import/utils.js +5 -3
- package/dist/specification/src/sync/v4/import/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts +9 -7
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.js +4 -8
- package/dist/specification/src/sync/v4/sync-rules/App.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts +2 -9
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js +2 -11
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts +177 -46
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js +498 -152
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts +17 -22
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/Page.js +15 -22
- package/dist/specification/src/sync/v4/sync-rules/Page.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.d.ts +1 -0
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.js +17 -9
- package/dist/specification/src/sync/v4/sync-rules/controllerExtensions.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/index.d.ts +5 -0
- package/dist/specification/src/sync/v4/sync-rules/index.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/index.js +21 -0
- package/dist/specification/src/sync/v4/sync-rules/index.js.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/utils.js +4 -0
- package/dist/specification/src/sync/v4/sync-rules/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/index.d.ts +2 -0
- package/dist/specification/src/sync/v4/utils/index.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/utils/index.js +18 -0
- package/dist/specification/src/sync/v4/utils/index.js.map +1 -0
- package/dist/specification/src/sync/v4/utils/utils.d.ts +9 -1
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +17 -2
- package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/specification/test/test-projects/v2sttaProdMan2/webapp/manifest.json +550 -0
- package/dist/specification/test/test-projects/v4new/webapp/manifest.json +147 -0
- package/dist/specification/test/test-utils/utils.d.ts +71 -0
- package/dist/specification/test/test-utils/utils.d.ts.map +1 -0
- package/dist/specification/test/test-utils/utils.js +400 -0
- package/dist/specification/test/test-utils/utils.js.map +1 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.d.ts +131 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.d.ts.map +1 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.js +661 -0
- package/dist/specification/test/unit/decorators/validity-test-utils.js.map +1 -0
- package/dist/types/src/apiTypes.d.ts +2 -3
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/common/types.d.ts +119 -13
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageTable.d.ts +1 -1
- package/dist/types/src/v2/controls/Table.d.ts +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/types/src/v4/controls/Table.d.ts +3 -3
- package/dist/types/src/v4/controls/Table.d.ts.map +1 -1
- package/package.json +14 -12
- package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts +0 -107
- package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts.map +0 -1
- package/dist/specification/src/sync/v4/generate/ListReportUtils.js +0 -394
- package/dist/specification/src/sync/v4/generate/ListReportUtils.js.map +0 -1
- package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +0 -1
- package/dist/specification/src/sync/v4/generate/listReport.js.map +0 -1
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-safe path builders and condition helpers for decorator conditions.
|
|
3
|
+
*
|
|
4
|
+
* This module provides:
|
|
5
|
+
*
|
|
6
|
+
* ## Context Sources
|
|
7
|
+
* - **`app`**: App-level configuration (auto-injected from `app.config`)
|
|
8
|
+
* - **`page`**: Page-level configuration (auto-injected from `page.config`)
|
|
9
|
+
* - **`custom`**: Custom context (provided via `init()`)
|
|
10
|
+
*
|
|
11
|
+
* ## Utilities
|
|
12
|
+
* - **Path builders**: Type-safe property access for `app`, `page`, and `custom` contexts
|
|
13
|
+
* - **Condition helpers**: `when()`, `not()`, `and()`, `or()` for building conditions
|
|
14
|
+
* - **Message helper**: `msg()` for i18n-based messages
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { page, custom, when, not, and, or, msg } from './decorator-paths';
|
|
19
|
+
*
|
|
20
|
+
* class MyTable extends Decorator {
|
|
21
|
+
* // Truthy check - hide when value is falsy
|
|
22
|
+
* @hide(page.isALP)
|
|
23
|
+
* alpOnlyField: string;
|
|
24
|
+
*
|
|
25
|
+
* // Equality check with when() - hide when type IS GridTable
|
|
26
|
+
* @hide(when(page.type, 'GridTable'))
|
|
27
|
+
* gridField: string;
|
|
28
|
+
*
|
|
29
|
+
* // Negation with not() - hide when type is NOT TreeTable
|
|
30
|
+
* @hide(not(page.type, 'TreeTable'))
|
|
31
|
+
* treeOnlyField: string;
|
|
32
|
+
*
|
|
33
|
+
* // AND conditions
|
|
34
|
+
* @hide(and(page.isALP, when(page.type, 'GridTable')))
|
|
35
|
+
* alpGridField: string;
|
|
36
|
+
*
|
|
37
|
+
* // OR conditions
|
|
38
|
+
* @hide(or(when(page.actionType, 'Bound'), when(page.actionType, 'Custom')))
|
|
39
|
+
* actionField: string;
|
|
40
|
+
*
|
|
41
|
+
* // Message with i18n
|
|
42
|
+
* @message(page.betaFeature, msg('BETA_WARNING', { feature: 'table' }))
|
|
43
|
+
* betaField: string;
|
|
44
|
+
*
|
|
45
|
+
* // Always hide
|
|
46
|
+
* @hide(true)
|
|
47
|
+
* internalField: string;
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
import type { Manifest, v4, AndConditionItem, OrConditionItem, AndConditionGroup, OrConditionGroup } from '@sap/ux-specification-types';
|
|
52
|
+
/**
|
|
53
|
+
* App context (sourced from app.config).
|
|
54
|
+
* This context is auto-injected and available via `app.*` paths.
|
|
55
|
+
*/
|
|
56
|
+
export type AppContext = {
|
|
57
|
+
/** The application manifest */
|
|
58
|
+
manifest: Manifest;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Page context (sourced from page.config).
|
|
62
|
+
* This context is auto-injected and available via `page.*` paths.
|
|
63
|
+
*
|
|
64
|
+
* These properties are determined by the Page class and its configuration.
|
|
65
|
+
* Extend this type when new config properties are added to Page.
|
|
66
|
+
*/
|
|
67
|
+
export type PageContext = {};
|
|
68
|
+
/**
|
|
69
|
+
* Settings for the Table Class context, taken from manifest.
|
|
70
|
+
*
|
|
71
|
+
* This context is provided via `init()` when applying table decorators.
|
|
72
|
+
*/
|
|
73
|
+
export type LRTableContext = {
|
|
74
|
+
type: v4.TableTypeV4;
|
|
75
|
+
creationMode?: v4.TableCreationModeLR;
|
|
76
|
+
analyticalConfiguration?: v4.AnalyticalConfiguration;
|
|
77
|
+
popinLayout?: string;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Symbol used to store the path string within PathNode objects.
|
|
81
|
+
* This allows the decorator to extract the path at runtime.
|
|
82
|
+
*
|
|
83
|
+
* Using Symbol.for() creates a global symbol that persists across module loads,
|
|
84
|
+
* ensuring isPathNode() works correctly even when the module is loaded multiple times.
|
|
85
|
+
*/
|
|
86
|
+
export declare const PATH_SYMBOL: unique symbol;
|
|
87
|
+
/**
|
|
88
|
+
* Represents a node in the path builder tree.
|
|
89
|
+
* Contains the accumulated path string accessible via PATH_SYMBOL.
|
|
90
|
+
*
|
|
91
|
+
* @template P - The string literal type of the path
|
|
92
|
+
*/
|
|
93
|
+
export type PathNode<P extends string = string> = {
|
|
94
|
+
readonly [PATH_SYMBOL]: P;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Recursive type that builds typed property accessors for a given object shape.
|
|
98
|
+
* Each property returns either:
|
|
99
|
+
* - Another PathBuilder (for nested objects) combined with a PathNode
|
|
100
|
+
* - A PathNode (for leaf/primitive values)
|
|
101
|
+
*
|
|
102
|
+
* @template T - The shape of the object to create paths for
|
|
103
|
+
* @template Prefix - The accumulated path prefix (e.g., 'page.')
|
|
104
|
+
*/
|
|
105
|
+
type PathBuilder<T, Prefix extends string> = {
|
|
106
|
+
readonly [K in keyof T & string]: NonNullable<T[K]> extends object ? NonNullable<T[K]> extends readonly unknown[] ? PathNode<`${Prefix}${K}`> : PathBuilder<NonNullable<T[K]>, `${Prefix}${K}.`> & PathNode<`${Prefix}${K}`> : PathNode<`${Prefix}${K}`>;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Extracts the path string from a PathNode.
|
|
110
|
+
*
|
|
111
|
+
* @template P - The string literal type of the path
|
|
112
|
+
* @param node - The PathNode to extract the path from
|
|
113
|
+
* @returns The path string
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* getPath(page.isALP) // Returns: 'page.isALP'
|
|
117
|
+
* getPath(app.manifest) // Returns: 'app.manifest'
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
export declare function getPath<P extends string>(node: PathNode<P>): P;
|
|
121
|
+
/**
|
|
122
|
+
* Type guard to check if a value is a PathNode.
|
|
123
|
+
*
|
|
124
|
+
* @param value - The value to check
|
|
125
|
+
* @returns True if the value is a PathNode
|
|
126
|
+
*/
|
|
127
|
+
export declare function isPathNode(value: unknown): value is PathNode;
|
|
128
|
+
/**
|
|
129
|
+
* Path builder for app.config properties.
|
|
130
|
+
*
|
|
131
|
+
* This context is **auto-injected** from `app.config` - you do not need to
|
|
132
|
+
* provide it in the customContext parameter of `init()`.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* // Access manifest properties
|
|
137
|
+
* @hide(when(app.manifest['sap.app'].id, 'some-app-id'))
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export declare const app: PathBuilder<AppContext, `${string}.`> & PathNode<string>;
|
|
141
|
+
/**
|
|
142
|
+
* Path builder for page.config properties.
|
|
143
|
+
*
|
|
144
|
+
* This context is **auto-injected** from `page.config` - you do not need to
|
|
145
|
+
* provide it in the customContext parameter of `init()`.
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* // Simple truthy check
|
|
150
|
+
* @hide(page.isALP)
|
|
151
|
+
*
|
|
152
|
+
* // Equality check with when()
|
|
153
|
+
* @hide(when(page.isALP, true))
|
|
154
|
+
* @hide(when(page.visualization, 'Chart'))
|
|
155
|
+
*
|
|
156
|
+
* // Nested property
|
|
157
|
+
* @hide(when(page.settings.enabled, false))
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
export declare const page: PathBuilder<PageContext, `${string}.`> & PathNode<string>;
|
|
161
|
+
/**
|
|
162
|
+
* Path builder for custom context properties.
|
|
163
|
+
*
|
|
164
|
+
* This context **must be provided** in the customContext parameter of `init()`.
|
|
165
|
+
* Use this for runtime-specific conditions like table state, section state, etc.
|
|
166
|
+
*
|
|
167
|
+
* **Note**: For table-specific decorators, prefer using `tableContext` which provides
|
|
168
|
+
* full type safety for table properties.
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* // In decorator
|
|
173
|
+
* @hide(when(custom.table.type, 'ResponsiveTable'))
|
|
174
|
+
* @hide(when(custom.table.views, (views) => views.length > 0))
|
|
175
|
+
*
|
|
176
|
+
* // In init
|
|
177
|
+
* decorator.init({
|
|
178
|
+
* table: { type: 'GridTable', views: [] }
|
|
179
|
+
* });
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
export declare const custom: PathBuilder<Record<string, unknown>, `${string}.`> & PathNode<string>;
|
|
183
|
+
/**
|
|
184
|
+
* Type-safe path builder for table decorator context.
|
|
185
|
+
*
|
|
186
|
+
* This context **must be provided** in the customContext parameter of `init()`.
|
|
187
|
+
* Use this for table-specific conditions in List Report table decorators.
|
|
188
|
+
*
|
|
189
|
+
* Properties are accessed directly without nesting (e.g., `tableContext.type` not `tableContext.table.type`).
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* // In decorator - with full type safety
|
|
194
|
+
* @hide(when(tableContext.type, 'AnalyticalTable'))
|
|
195
|
+
* @hide(not(tableContext.type, 'TreeTable'))
|
|
196
|
+
* @hide(when(tableContext.creationMode, (cm) => cm?.name === 'CreationDialog'))
|
|
197
|
+
*
|
|
198
|
+
* // In init - provide flat context object
|
|
199
|
+
* decorator.init({
|
|
200
|
+
* type: 'GridTable',
|
|
201
|
+
* creationMode: { name: 'NewPage' },
|
|
202
|
+
* analyticalConfiguration: undefined,
|
|
203
|
+
* popinLayout: undefined
|
|
204
|
+
* });
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
export declare const tableContext: PathBuilder<LRTableContext, `${string}.`> & PathNode<string>;
|
|
208
|
+
/**
|
|
209
|
+
* Symbol used to identify WhenCondition objects.
|
|
210
|
+
*/
|
|
211
|
+
export declare const WHEN_SYMBOL: unique symbol;
|
|
212
|
+
/**
|
|
213
|
+
* A condition function that receives the resolved value and returns a boolean.
|
|
214
|
+
*/
|
|
215
|
+
export type ConditionFunction = (value: unknown) => boolean;
|
|
216
|
+
/**
|
|
217
|
+
* Represents a condition with a path and expected value or function.
|
|
218
|
+
* Created by the `when()` helper function.
|
|
219
|
+
*/
|
|
220
|
+
export interface WhenCondition {
|
|
221
|
+
readonly [WHEN_SYMBOL]: true;
|
|
222
|
+
readonly path: PathNode;
|
|
223
|
+
readonly expected: unknown | ConditionFunction;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Type guard to check if a value is a WhenCondition.
|
|
227
|
+
*
|
|
228
|
+
* @param value - The value to check
|
|
229
|
+
* @returns True if value is a WhenCondition
|
|
230
|
+
*/
|
|
231
|
+
export declare function isWhenCondition(value: unknown): value is WhenCondition;
|
|
232
|
+
/**
|
|
233
|
+
* Creates a condition that checks if a path's value matches an expected value or function.
|
|
234
|
+
*
|
|
235
|
+
* @param path - The PathNode to check
|
|
236
|
+
* @param expected - The expected value or a function that receives the value and returns boolean
|
|
237
|
+
* @returns A WhenCondition object
|
|
238
|
+
* @example
|
|
239
|
+
* ```typescript
|
|
240
|
+
* // Equality check
|
|
241
|
+
* @hide(when(page.type, 'GridTable'))
|
|
242
|
+
*
|
|
243
|
+
* // Custom function (e.g., negation)
|
|
244
|
+
* @hide(when(page.type, (type) => type !== 'GridTable'))
|
|
245
|
+
*
|
|
246
|
+
* // Check array length
|
|
247
|
+
* @hide(when(custom.table.views, (views) => views?.length === 0))
|
|
248
|
+
*
|
|
249
|
+
* // Numeric comparison
|
|
250
|
+
* @hide(when(page.count, (count) => count > 10))
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
export declare function when(path: PathNode, expected: unknown | ConditionFunction): WhenCondition;
|
|
254
|
+
/**
|
|
255
|
+
* Symbol used to identify NotCondition objects.
|
|
256
|
+
*/
|
|
257
|
+
export declare const NOT_SYMBOL: unique symbol;
|
|
258
|
+
/**
|
|
259
|
+
* Represents a negated condition with a path and optional expected value or function.
|
|
260
|
+
* Created by the `not()` helper function.
|
|
261
|
+
*
|
|
262
|
+
* The condition is evaluated and then inverted:
|
|
263
|
+
* - `not(path)` - true when value is falsy
|
|
264
|
+
* - `not(path, value)` - true when value !== expected
|
|
265
|
+
* - `not(path, fn)` - true when fn(value) returns false
|
|
266
|
+
*/
|
|
267
|
+
export interface NotCondition {
|
|
268
|
+
readonly [NOT_SYMBOL]: true;
|
|
269
|
+
readonly path: PathNode;
|
|
270
|
+
readonly expected?: unknown | ConditionFunction;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Type guard to check if a value is a NotCondition.
|
|
274
|
+
*
|
|
275
|
+
* @param value - The value to check
|
|
276
|
+
* @returns True if value is a NotCondition
|
|
277
|
+
*/
|
|
278
|
+
export declare function isNotCondition(value: unknown): value is NotCondition;
|
|
279
|
+
/**
|
|
280
|
+
* Creates a negated condition that checks if a path's value does not match an expected value or function.
|
|
281
|
+
* This is the opposite of `when()`. While `when(path, value)` passes when value === expected,
|
|
282
|
+
* `not(path, value)` passes when value !== expected.
|
|
283
|
+
*
|
|
284
|
+
* Can also invert a WhenCondition created by `when()` or `exists()`.
|
|
285
|
+
*
|
|
286
|
+
* @param pathOrCondition - The PathNode to check or a WhenCondition to invert
|
|
287
|
+
* @param expected - Optional: The expected value or a function that receives the value and returns boolean
|
|
288
|
+
* @returns A NotCondition object
|
|
289
|
+
* @example
|
|
290
|
+
* ```typescript
|
|
291
|
+
* // Falsy check - hide when value is falsy
|
|
292
|
+
* @hide(not(page.enabled))
|
|
293
|
+
*
|
|
294
|
+
* // Inequality check - hide when type is NOT TreeTable
|
|
295
|
+
* @hide(not(page.type, 'TreeTable'))
|
|
296
|
+
*
|
|
297
|
+
* // Custom function negation - hide when function returns false
|
|
298
|
+
* @hide(not(custom.settings, (s) => s?.enabled === true))
|
|
299
|
+
*
|
|
300
|
+
* // Invert exists() - hide when value does NOT exist
|
|
301
|
+
* @hide(not(exists(tableContext.creationMode)))
|
|
302
|
+
*
|
|
303
|
+
* // Combined with and() - hide when BOTH conditions are met
|
|
304
|
+
* @hide(and(not(page.type, 'TreeTable'), page.isEnabled))
|
|
305
|
+
* ```
|
|
306
|
+
*/
|
|
307
|
+
export declare function not(pathOrCondition: PathNode | WhenCondition, expected?: unknown | ConditionFunction): NotCondition;
|
|
308
|
+
/**
|
|
309
|
+
* Creates a condition that checks if a path's value exists (is not undefined).
|
|
310
|
+
* This is a semantic shorthand for `when(path, (value) => value !== undefined)`.
|
|
311
|
+
*
|
|
312
|
+
* @param path - The PathNode to check for existence
|
|
313
|
+
* @returns A WhenCondition that checks for defined value
|
|
314
|
+
* @example
|
|
315
|
+
* ```typescript
|
|
316
|
+
* // Check if property exists - show message only when value is set
|
|
317
|
+
* @message(
|
|
318
|
+
* and(
|
|
319
|
+
* not(tableContext.type, 'AnalyticalTable'),
|
|
320
|
+
* exists(tableContext.analyticalConfiguration.aggregationOnLeafLevel)
|
|
321
|
+
* ),
|
|
322
|
+
* msg('PROPERTY_NOT_ALLOWED')
|
|
323
|
+
* )
|
|
324
|
+
*
|
|
325
|
+
* // Can be negated with not() - though typically just use truthy check
|
|
326
|
+
* @hide(not(exists(tableContext.creationMode)))
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
export declare function exists(path: PathNode): WhenCondition;
|
|
330
|
+
/**
|
|
331
|
+
* Symbol used to identify MessageConfig objects.
|
|
332
|
+
*/
|
|
333
|
+
export declare const MSG_SYMBOL: unique symbol;
|
|
334
|
+
/**
|
|
335
|
+
* Parameter value that can be either a static value or a PathNode for dynamic resolution.
|
|
336
|
+
*/
|
|
337
|
+
export type MessageParamValue = unknown | PathNode;
|
|
338
|
+
/**
|
|
339
|
+
* Configuration for an i18n-based message.
|
|
340
|
+
* Created by the `msg()` helper function.
|
|
341
|
+
*/
|
|
342
|
+
export interface MessageConfig {
|
|
343
|
+
readonly [MSG_SYMBOL]: true;
|
|
344
|
+
/** The i18n translation key */
|
|
345
|
+
readonly i18nKey: string;
|
|
346
|
+
/** Parameters to pass to the i18n translation function. Values can be static or PathNode for dynamic resolution. */
|
|
347
|
+
readonly params?: Record<string, MessageParamValue>;
|
|
348
|
+
/** Whether the message can be dismissed/deleted in the UI (default: false) */
|
|
349
|
+
readonly deletable: boolean;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Type guard to check if a value is a MessageConfig.
|
|
353
|
+
*
|
|
354
|
+
* @param value - The value to check
|
|
355
|
+
* @returns True if value is a MessageConfig
|
|
356
|
+
*/
|
|
357
|
+
export declare function isMessageConfig(value: unknown): value is MessageConfig;
|
|
358
|
+
/**
|
|
359
|
+
* Creates an i18n message configuration for use with the `@message` decorator.
|
|
360
|
+
*
|
|
361
|
+
* @param i18nKey - The i18n translation key
|
|
362
|
+
* @param params - Optional parameters to pass to the translation function.
|
|
363
|
+
* Values can be static or PathNode references for dynamic resolution.
|
|
364
|
+
* @param options - Optional configuration
|
|
365
|
+
* @param options.deletable - Whether the message can be dismissed/deleted in the UI (default: false)
|
|
366
|
+
* @returns A MessageConfig object
|
|
367
|
+
* @example
|
|
368
|
+
* ```typescript
|
|
369
|
+
* // Simple message
|
|
370
|
+
* @message(page.betaFeature, msg('BETA_WARNING'))
|
|
371
|
+
*
|
|
372
|
+
* // Message with static parameters
|
|
373
|
+
* @message(when(page.type, 'GridTable'), msg('TABLE_WARNING', { type: 'GridTable' }))
|
|
374
|
+
*
|
|
375
|
+
* // Message with dynamic parameters (resolved from context at runtime)
|
|
376
|
+
* @message(condition, msg('TABLE_WARNING', { tableType: tableContext.table.type }))
|
|
377
|
+
*
|
|
378
|
+
* // Deletable message
|
|
379
|
+
* @message(page.deprecated, msg('DEPRECATED', { since: '1.96' }, { deletable: true }))
|
|
380
|
+
* ```
|
|
381
|
+
*/
|
|
382
|
+
export declare function msg(i18nKey: string, params?: Record<string, MessageParamValue>, options?: {
|
|
383
|
+
deletable?: boolean;
|
|
384
|
+
}): MessageConfig;
|
|
385
|
+
/**
|
|
386
|
+
* A single condition: PathNode (truthy check), WhenCondition (value check), NotCondition (negated check), or true (always)
|
|
387
|
+
*/
|
|
388
|
+
export type Condition = PathNode | WhenCondition | NotCondition | true;
|
|
389
|
+
/**
|
|
390
|
+
* Marker interface for AND condition groups.
|
|
391
|
+
* All conditions must be met for the overall condition to pass.
|
|
392
|
+
*/
|
|
393
|
+
export interface AndCondition {
|
|
394
|
+
readonly __type: 'and';
|
|
395
|
+
readonly conditions: ConditionInput[];
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Marker interface for OR condition groups.
|
|
399
|
+
* At least one condition must be met for the overall condition to pass.
|
|
400
|
+
*/
|
|
401
|
+
export interface OrCondition {
|
|
402
|
+
readonly __type: 'or';
|
|
403
|
+
readonly conditions: ConditionInput[];
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Union type for condition groups.
|
|
407
|
+
*/
|
|
408
|
+
export type ConditionGroup = AndCondition | OrCondition;
|
|
409
|
+
/**
|
|
410
|
+
* All valid inputs for conditional decorators.
|
|
411
|
+
*/
|
|
412
|
+
export type ConditionInput = Condition | ConditionGroup;
|
|
413
|
+
/**
|
|
414
|
+
* Creates an AND condition group where ALL conditions must be met.
|
|
415
|
+
*
|
|
416
|
+
* @param conditions - Conditions to combine (PathNode for truthy, WhenCondition for value check)
|
|
417
|
+
* @returns An AndCondition object for use with decorators
|
|
418
|
+
* @example
|
|
419
|
+
* ```typescript
|
|
420
|
+
* // Both must be truthy
|
|
421
|
+
* @hide(and(page.isALP, page.isMultiView))
|
|
422
|
+
*
|
|
423
|
+
* // Mixed truthy and value checks
|
|
424
|
+
* @hide(and(page.isALP, when(page.type, 'GridTable')))
|
|
425
|
+
*
|
|
426
|
+
* // Multiple value checks
|
|
427
|
+
* @hide(and(when(page.isALP, true), when(page.isMultiView, true)))
|
|
428
|
+
* ```
|
|
429
|
+
*/
|
|
430
|
+
export declare function and(...conditions: ConditionInput[]): AndCondition;
|
|
431
|
+
/**
|
|
432
|
+
* Creates an OR condition group where AT LEAST ONE condition must be met.
|
|
433
|
+
*
|
|
434
|
+
* @param conditions - Conditions to combine (PathNode for truthy, WhenCondition for value check)
|
|
435
|
+
* @returns An OrCondition object for use with decorators
|
|
436
|
+
* @example
|
|
437
|
+
* ```typescript
|
|
438
|
+
* // Either must be truthy
|
|
439
|
+
* @hide(or(page.isALP, page.isOVP))
|
|
440
|
+
*
|
|
441
|
+
* // Either value must match
|
|
442
|
+
* @hide(or(when(page.actionType, 'Bound'), when(page.actionType, 'Custom')))
|
|
443
|
+
* ```
|
|
444
|
+
*/
|
|
445
|
+
export declare function or(...conditions: ConditionInput[]): OrCondition;
|
|
446
|
+
/**
|
|
447
|
+
* Type guard to check if a value is an AndCondition.
|
|
448
|
+
*
|
|
449
|
+
* @param value - The value to check
|
|
450
|
+
* @returns True if value is an AndCondition
|
|
451
|
+
*/
|
|
452
|
+
export declare function isAndCondition(value: unknown): value is AndCondition;
|
|
453
|
+
/**
|
|
454
|
+
* Type guard to check if a value is an OrCondition.
|
|
455
|
+
*
|
|
456
|
+
* @param value - The value to check
|
|
457
|
+
* @returns True if value is an OrCondition
|
|
458
|
+
*/
|
|
459
|
+
export declare function isOrCondition(value: unknown): value is OrCondition;
|
|
460
|
+
/**
|
|
461
|
+
* Type guard to check if a value is a ConditionGroup (and or or).
|
|
462
|
+
*
|
|
463
|
+
* @param value - The value to check
|
|
464
|
+
* @returns True if value is a ConditionGroup
|
|
465
|
+
*/
|
|
466
|
+
export declare function isConditionGroup(value: unknown): value is ConditionGroup;
|
|
467
|
+
/**
|
|
468
|
+
* Type guard to check if an AND condition item is a nested OR group.
|
|
469
|
+
*
|
|
470
|
+
* @param item - The condition item to check
|
|
471
|
+
* @returns True if item is an OrConditionGroup
|
|
472
|
+
*/
|
|
473
|
+
export declare function isOrConditionGroup(item: AndConditionItem): item is OrConditionGroup;
|
|
474
|
+
/**
|
|
475
|
+
* Type guard to check if an OR condition item is a nested AND group.
|
|
476
|
+
*
|
|
477
|
+
* @param item - The condition item to check
|
|
478
|
+
* @returns True if item is an AndConditionGroup
|
|
479
|
+
*/
|
|
480
|
+
export declare function isAndConditionGroup(item: OrConditionItem): item is AndConditionGroup;
|
|
481
|
+
/**
|
|
482
|
+
* The complete decorator context type used internally.
|
|
483
|
+
* Contains app, page and custom context.
|
|
484
|
+
*/
|
|
485
|
+
export type DecoratorContextType = {
|
|
486
|
+
/**
|
|
487
|
+
* App context - auto-injected from app.config.
|
|
488
|
+
* Provides access to manifest and other app-level properties.
|
|
489
|
+
*/
|
|
490
|
+
app?: Partial<AppContext>;
|
|
491
|
+
/**
|
|
492
|
+
* Page context - auto-injected from page.config.
|
|
493
|
+
* Provides access to page-level properties like isALP, visualization, etc.
|
|
494
|
+
*/
|
|
495
|
+
page?: Partial<PageContext>;
|
|
496
|
+
/**
|
|
497
|
+
* Custom context - provided via init().
|
|
498
|
+
* Use for runtime-specific conditions like table state, section state, etc.
|
|
499
|
+
*/
|
|
500
|
+
custom?: Record<string, unknown>;
|
|
501
|
+
};
|
|
502
|
+
export {};
|
|
503
|
+
//# sourceMappingURL=decorator-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorator-paths.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/common/decoration/decorator-paths.ts"],"names":[],"mappings":"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"}
|