@atlassian/clientside-extensions-components 3.1.2-test9-85e70efb → 3.1.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/README.md +2 -2
- package/dist/cjs/ExtensionPoint.js +13 -16
- package/dist/cjs/ExtensionPoint.js.map +1 -1
- package/dist/cjs/ExtensionPointInfo.js +101 -63
- package/dist/cjs/ExtensionPointInfo.js.map +1 -1
- package/dist/cjs/ExtensionsObservable.js +380 -0
- package/dist/cjs/ExtensionsObservable.js.map +1 -0
- package/dist/cjs/debug/types.js +3 -0
- package/dist/cjs/debug/types.js.map +1 -0
- package/dist/cjs/debug/useDebug.js +9 -8
- package/dist/cjs/debug/useDebug.js.map +1 -1
- package/dist/cjs/debug/useDiscovery.js +9 -8
- package/dist/cjs/debug/useDiscovery.js.map +1 -1
- package/dist/cjs/debug/useLogging.js +9 -8
- package/dist/cjs/debug/useLogging.js.map +1 -1
- package/dist/cjs/debug/useValidation.js +9 -8
- package/dist/cjs/debug/useValidation.js.map +1 -1
- package/dist/cjs/handlers/AsyncPanelHandler.js +69 -101
- package/dist/cjs/handlers/AsyncPanelHandler.js.map +1 -1
- package/dist/cjs/handlers/ButtonHandler.js +9 -11
- package/dist/cjs/handlers/ButtonHandler.js.map +1 -1
- package/dist/cjs/handlers/LinkHandler.js +9 -11
- package/dist/cjs/handlers/LinkHandler.js.map +1 -1
- package/dist/cjs/handlers/ModalHandler.js +55 -142
- package/dist/cjs/handlers/ModalHandler.js.map +1 -1
- package/dist/cjs/handlers/PanelHandler.js +18 -35
- package/dist/cjs/handlers/PanelHandler.js.map +1 -1
- package/dist/cjs/handlers/SectionHandler.js +6 -11
- package/dist/cjs/handlers/SectionHandler.js.map +1 -1
- package/dist/cjs/handlers/index.js +16 -14
- package/dist/cjs/handlers/index.js.map +1 -1
- package/dist/cjs/handlers/types.js +3 -0
- package/dist/cjs/handlers/types.js.map +1 -0
- package/dist/cjs/index.js +16 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/renderElementAsReact.js +17 -0
- package/dist/cjs/renderElementAsReact.js.map +1 -0
- package/dist/cjs/styled.js +110 -0
- package/dist/cjs/styled.js.map +1 -0
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/useExtensions.js +37 -288
- package/dist/cjs/useExtensions.js.map +1 -1
- package/dist/cjs/useWebPanelRenderer.js +70 -0
- package/dist/cjs/useWebPanelRenderer.js.map +1 -0
- package/dist/esm/ExtensionPoint.js +10 -13
- package/dist/esm/ExtensionPoint.js.map +1 -1
- package/dist/esm/ExtensionPointInfo.js +98 -61
- package/dist/esm/ExtensionPointInfo.js.map +1 -1
- package/dist/esm/ExtensionsObservable.js +374 -0
- package/dist/esm/ExtensionsObservable.js.map +1 -0
- package/dist/esm/debug/types.js +2 -0
- package/dist/esm/debug/types.js.map +1 -0
- package/dist/esm/debug/useDebug.js +7 -6
- package/dist/esm/debug/useDebug.js.map +1 -1
- package/dist/esm/debug/useDiscovery.js +7 -6
- package/dist/esm/debug/useDiscovery.js.map +1 -1
- package/dist/esm/debug/useLogging.js +7 -6
- package/dist/esm/debug/useLogging.js.map +1 -1
- package/dist/esm/debug/useValidation.js +7 -6
- package/dist/esm/debug/useValidation.js.map +1 -1
- package/dist/esm/handlers/AsyncPanelHandler.js +63 -97
- package/dist/esm/handlers/AsyncPanelHandler.js.map +1 -1
- package/dist/esm/handlers/ButtonHandler.js +5 -8
- package/dist/esm/handlers/ButtonHandler.js.map +1 -1
- package/dist/esm/handlers/LinkHandler.js +5 -8
- package/dist/esm/handlers/LinkHandler.js.map +1 -1
- package/dist/esm/handlers/ModalHandler.js +51 -140
- package/dist/esm/handlers/ModalHandler.js.map +1 -1
- package/dist/esm/handlers/PanelHandler.js +13 -31
- package/dist/esm/handlers/PanelHandler.js.map +1 -1
- package/dist/esm/handlers/SectionHandler.js +2 -8
- package/dist/esm/handlers/SectionHandler.js.map +1 -1
- package/dist/esm/handlers/index.js +7 -7
- package/dist/esm/handlers/index.js.map +1 -1
- package/dist/esm/handlers/types.js +2 -0
- package/dist/esm/handlers/types.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/renderElementAsReact.js +14 -0
- package/dist/esm/renderElementAsReact.js.map +1 -0
- package/dist/esm/styled.js +106 -0
- package/dist/esm/styled.js.map +1 -0
- package/dist/esm/types.js +3 -0
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/useExtensions.js +29 -285
- package/dist/esm/useExtensions.js.map +1 -1
- package/dist/esm/useWebPanelRenderer.js +68 -0
- package/dist/esm/useWebPanelRenderer.js.map +1 -0
- package/dist/types/ExtensionPoint.d.ts +8 -9
- package/dist/types/ExtensionPoint.d.ts.map +1 -1
- package/dist/types/ExtensionPointInfo.d.ts +10 -7
- package/dist/types/ExtensionPointInfo.d.ts.map +1 -1
- package/dist/types/ExtensionsObservable.d.ts +6 -0
- package/dist/types/ExtensionsObservable.d.ts.map +1 -0
- package/dist/types/debug/types.d.ts +2 -0
- package/dist/types/debug/types.d.ts.map +1 -0
- package/dist/types/debug/useDebug.d.ts +3 -2
- package/dist/types/debug/useDebug.d.ts.map +1 -1
- package/dist/types/debug/useDiscovery.d.ts +3 -2
- package/dist/types/debug/useDiscovery.d.ts.map +1 -1
- package/dist/types/debug/useLogging.d.ts +3 -2
- package/dist/types/debug/useLogging.d.ts.map +1 -1
- package/dist/types/debug/useValidation.d.ts +3 -2
- package/dist/types/debug/useValidation.d.ts.map +1 -1
- package/dist/types/handlers/AsyncPanelHandler.d.ts +8 -7
- package/dist/types/handlers/AsyncPanelHandler.d.ts.map +1 -1
- package/dist/types/handlers/ButtonHandler.d.ts +5 -7
- package/dist/types/handlers/ButtonHandler.d.ts.map +1 -1
- package/dist/types/handlers/LinkHandler.d.ts +6 -6
- package/dist/types/handlers/LinkHandler.d.ts.map +1 -1
- package/dist/types/handlers/ModalHandler.d.ts +11 -53
- package/dist/types/handlers/ModalHandler.d.ts.map +1 -1
- package/dist/types/handlers/PanelHandler.d.ts +5 -18
- package/dist/types/handlers/PanelHandler.d.ts.map +1 -1
- package/dist/types/handlers/SectionHandler.d.ts +2 -6
- package/dist/types/handlers/SectionHandler.d.ts.map +1 -1
- package/dist/types/handlers/index.d.ts +7 -7
- package/dist/types/handlers/index.d.ts.map +1 -1
- package/dist/types/handlers/types.d.ts +12 -0
- package/dist/types/handlers/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/renderElementAsReact.d.ts +5 -0
- package/dist/types/renderElementAsReact.d.ts.map +1 -0
- package/dist/types/styled.d.ts +15 -0
- package/dist/types/styled.d.ts.map +1 -0
- package/dist/types/types.d.ts +17 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/useExtensions.d.ts +6 -11
- package/dist/types/useExtensions.d.ts.map +1 -1
- package/dist/types/useWebPanelRenderer.d.ts +3 -0
- package/dist/types/useWebPanelRenderer.d.ts.map +1 -0
- package/lib/ExtensionPoint.test.tsx +34 -30
- package/lib/ExtensionPoint.tsx +11 -12
- package/lib/ExtensionPointInfo.test.tsx +128 -31
- package/lib/ExtensionPointInfo.tsx +193 -139
- package/lib/ExtensionsObservable.test.ts +434 -0
- package/lib/ExtensionsObservable.ts +510 -0
- package/lib/__snapshots__/ExtensionPoint.test.tsx.snap +2 -2
- package/lib/__snapshots__/ExtensionPointInfo.test.tsx.snap +453 -109
- package/lib/debug/types.ts +1 -0
- package/lib/debug/useDebug.test.ts +12 -5
- package/lib/debug/useDebug.ts +7 -4
- package/lib/debug/useDiscovery.test.ts +12 -5
- package/lib/debug/useDiscovery.ts +7 -4
- package/lib/debug/useLogging.test.ts +12 -5
- package/lib/debug/useLogging.ts +7 -4
- package/lib/debug/useValidation.test.ts +12 -5
- package/lib/debug/useValidation.ts +7 -4
- package/lib/handlers/AsyncPanelHandler.test.tsx +21 -21
- package/lib/handlers/AsyncPanelHandler.tsx +35 -33
- package/lib/handlers/ButtonHandler.test.tsx +49 -18
- package/lib/handlers/ButtonHandler.tsx +31 -11
- package/lib/handlers/LinkHandler.test.tsx +56 -18
- package/lib/handlers/LinkHandler.tsx +34 -9
- package/lib/handlers/ModalHandler.test.tsx +178 -138
- package/lib/handlers/ModalHandler.tsx +108 -187
- package/lib/handlers/PanelHandler.test.tsx +9 -11
- package/lib/handlers/PanelHandler.tsx +24 -45
- package/lib/handlers/SectionHandler.test.tsx +13 -20
- package/lib/handlers/SectionHandler.tsx +4 -10
- package/lib/handlers/index.ts +7 -7
- package/lib/handlers/types.ts +12 -0
- package/lib/index.ts +7 -1
- package/lib/renderElementAsReact.test.tsx +76 -0
- package/lib/renderElementAsReact.tsx +17 -0
- package/lib/styled.ts +116 -0
- package/lib/types.ts +23 -1
- package/lib/useExtensions.test.ts +216 -158
- package/lib/useExtensions.ts +48 -338
- package/lib/useWebPanelRenderer.tsx +81 -0
- package/package.json +34 -22
- package/dist/cjs/validation/validation-async.js +0 -17
- package/dist/cjs/validation/validation-async.js.map +0 -1
- package/dist/cjs/validation/validation.js +0 -48
- package/dist/cjs/validation/validation.js.map +0 -1
- package/dist/esm/validation/validation-async.js +0 -13
- package/dist/esm/validation/validation-async.js.map +0 -1
- package/dist/esm/validation/validation.js +0 -26
- package/dist/esm/validation/validation.js.map +0 -1
- package/dist/tsconfig.cjs.tsbuildinfo +0 -9127
- package/dist/tsconfig.tsbuildinfo +0 -9127
- package/dist/types/validation/validation-async.d.ts +0 -3
- package/dist/types/validation/validation-async.d.ts.map +0 -1
- package/dist/types/validation/validation.d.ts +0 -3
- package/dist/types/validation/validation.d.ts.map +0 -1
- package/lib/validation/validation-async.ts +0 -16
- package/lib/validation/validation.test.ts +0 -61
- package/lib/validation/validation.ts +0 -29
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
## Provider Components
|
|
4
4
|
|
|
5
|
-
React components to assist in the authoring of
|
|
5
|
+
React components to assist in the authoring of extension points that work at product runtime.
|
|
6
6
|
|
|
7
7
|
Use of these components is optional, but makes rendering client-side extensions much easier,
|
|
8
|
-
since it provides default handlers for each
|
|
8
|
+
since it provides default handlers for each extension type that already implement Atlaskit.
|
|
9
9
|
|
|
10
10
|
Refer to the [official documentation](https://developer.atlassian.com/server/framework/clientside-extensions) for more information.
|
|
@@ -1,30 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _b = useExtensions_1.useExtensionsAll(name, context, options), supportedDescriptors = _b[0], unsupportedDescriptors = _b[1], isLoading = _b[2];
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const clientside_extensions_debug_1 = require("@atlassian/clientside-extensions-debug");
|
|
5
|
+
const react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
6
|
+
const useExtensions_1 = require("./useExtensions");
|
|
7
|
+
const ExtensionPoint = ({ name, context = null, options, children }) => {
|
|
8
|
+
const [supportedDescriptors, unsupportedDescriptors, isLoading] = (0, useExtensions_1.useExtensionsAll)(name, context, options);
|
|
10
9
|
if (typeof children !== 'function') {
|
|
11
|
-
clientside_extensions_debug_1.onDebug(
|
|
12
|
-
var error = _a.error;
|
|
10
|
+
(0, clientside_extensions_debug_1.onDebug)(({ error }) => {
|
|
13
11
|
return {
|
|
14
12
|
level: error,
|
|
15
|
-
|
|
16
|
-
message: "ExtensionPoint expects a render-child.\nThe \"children\"-property passed for extension point \"" + name + "\" is not a function.",
|
|
13
|
+
message: `ExtensionPoint expects a render-child.\nThe "children"-property passed for extension point "${name}" is not a function.`,
|
|
17
14
|
components: 'ExtensionPoint',
|
|
18
15
|
meta: {
|
|
19
|
-
name
|
|
20
|
-
context
|
|
21
|
-
options
|
|
16
|
+
name,
|
|
17
|
+
context,
|
|
18
|
+
options,
|
|
22
19
|
},
|
|
23
20
|
};
|
|
24
21
|
});
|
|
25
22
|
return null;
|
|
26
23
|
}
|
|
27
24
|
return react_1.default.createElement(react_1.default.Fragment, null, children(supportedDescriptors, unsupportedDescriptors, isLoading));
|
|
28
|
-
}
|
|
29
|
-
exports.default = ExtensionPoint;
|
|
25
|
+
};
|
|
26
|
+
exports.default = (0, react_1.memo)(ExtensionPoint);
|
|
30
27
|
//# sourceMappingURL=ExtensionPoint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionPoint.js","sourceRoot":"","sources":["../../lib/ExtensionPoint.tsx"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"ExtensionPoint.js","sourceRoot":"","sources":["../../lib/ExtensionPoint.tsx"],"names":[],"mappings":";;;AACA,wFAAiE;AACjE,4DAAoC;AACpC,mDAAmD;AAUnD,MAAM,cAAc,GAAkC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClG,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,SAAS,CAAC,GAAG,IAAA,gCAAgB,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAE3G,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;QAChC,IAAA,qCAAO,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAClB,OAAO;gBACH,KAAK,EAAE,KAAK;gBAEZ,OAAO,EAAE,+FAA+F,IAAI,sBAAsB;gBAClI,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE;oBACF,IAAI;oBACJ,OAAO;oBACP,OAAO;iBACV;aACJ,CAAC;QACN,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;KACf;IAED,OAAO,8DAAG,QAAQ,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAI,CAAC;AACpF,CAAC,CAAC;AAEF,kBAAe,IAAA,YAAI,EAAC,cAAc,CAAC,CAAC","sourcesContent":["import type { Context, ExtensionDescriptor } from '@atlassian/clientside-extensions-registry';\nimport { onDebug } from '@atlassian/clientside-extensions-debug';\nimport React, { memo } from 'react';\nimport { useExtensionsAll } from './useExtensions';\nimport type { ExtensionPointCallback, Options } from './types';\n\nexport interface ExtensionPointProps {\n name: string;\n context?: Context<{}> | null;\n options: Options;\n children: ExtensionPointCallback<ExtensionDescriptor>;\n}\n\nconst ExtensionPoint: React.FC<ExtensionPointProps> = ({ name, context = null, options, children }) => {\n const [supportedDescriptors, unsupportedDescriptors, isLoading] = useExtensionsAll(name, context, options);\n\n if (typeof children !== 'function') {\n onDebug(({ error }) => {\n return {\n level: error,\n\n message: `ExtensionPoint expects a render-child.\\nThe \"children\"-property passed for extension point \"${name}\" is not a function.`,\n components: 'ExtensionPoint',\n meta: {\n name,\n context,\n options,\n },\n };\n });\n return null;\n }\n\n return <>{children(supportedDescriptors, unsupportedDescriptors, isLoading)}</>;\n};\n\nexport default memo(ExtensionPoint);\n"]}
|
|
@@ -1,69 +1,107 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var NestedProperty = styled_1.default.div(templateObject_10 || (templateObject_10 = tslib_1.__makeTemplateObject(["\n margin: 0 0 0 8px;\n"], ["\n margin: 0 0 0 8px;\n"])));
|
|
19
|
-
// eslint-disable-next-line react/require-default-props
|
|
20
|
-
var PropertyDescriptor = function (_a) {
|
|
21
|
-
var label = _a.label, value = _a.value;
|
|
22
|
-
if (!value) {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
return (react_1.default.createElement(PropertyDescriptorContainer, null,
|
|
26
|
-
label,
|
|
27
|
-
": ",
|
|
28
|
-
react_1.default.createElement(PropertyValue, null, value)));
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
5
|
+
const standard_button_1 = (0, tslib_1.__importDefault)(require("@atlaskit/button/standard-button"));
|
|
6
|
+
const modal_dialog_1 = (0, tslib_1.__importStar)(require("@atlaskit/modal-dialog"));
|
|
7
|
+
const react_scroll_1 = require("react-scroll");
|
|
8
|
+
const constants_1 = require("@atlaskit/theme/constants");
|
|
9
|
+
const useDiscovery_1 = (0, tslib_1.__importDefault)(require("./debug/useDiscovery"));
|
|
10
|
+
const styled_1 = require("./styled");
|
|
11
|
+
const LinkToElement = ({ to }) => {
|
|
12
|
+
// TODO: is there a way to get the clean type from the schema?
|
|
13
|
+
// We are removing the e.g. "!" required syntax that is a suffix of the schema type
|
|
14
|
+
const cleanTo = to.replace(/[^a-zA-Z0-9]/g, '');
|
|
15
|
+
return (
|
|
16
|
+
// eslint-disable-next-line jsx-a11y/anchor-is-valid
|
|
17
|
+
react_1.default.createElement(react_scroll_1.Link, { to: cleanTo, href: "", containerId: "___cse_info_container", offset: -20, smooth: true }, to));
|
|
29
18
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
react_1.default.createElement(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
react_1.default.createElement("
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
19
|
+
const TypeRenderer = ({ objectType }) => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
20
|
+
react_1.default.createElement("p", null, objectType.description),
|
|
21
|
+
react_1.default.createElement(styled_1.Table, null,
|
|
22
|
+
react_1.default.createElement("thead", null,
|
|
23
|
+
react_1.default.createElement(styled_1.HeadRow, null,
|
|
24
|
+
react_1.default.createElement(styled_1.HeadCell, null, "Name"),
|
|
25
|
+
react_1.default.createElement(styled_1.HeadCell, null, "Type"),
|
|
26
|
+
react_1.default.createElement(styled_1.HeadCell, null, "Required"),
|
|
27
|
+
react_1.default.createElement(styled_1.HeadCell, null, "Description"))),
|
|
28
|
+
react_1.default.createElement("tbody", null, objectType.descriptors.map((descriptor) => (react_1.default.createElement(styled_1.TableRow, { key: descriptor.name },
|
|
29
|
+
react_1.default.createElement(styled_1.TableCell, { width: "15%" },
|
|
30
|
+
" ",
|
|
31
|
+
descriptor.name),
|
|
32
|
+
react_1.default.createElement(styled_1.TableCell, { width: "15%" },
|
|
33
|
+
react_1.default.createElement(LinkToElement, { to: descriptor.type })),
|
|
34
|
+
react_1.default.createElement(styled_1.TableCell, { width: "10%" }, descriptor.required ? 'true' : 'false'),
|
|
35
|
+
react_1.default.createElement(styled_1.TableCell, null, descriptor.description))))))));
|
|
36
|
+
const EnumTypeRenderer = ({ enumType }) => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
37
|
+
react_1.default.createElement("h3", null,
|
|
38
|
+
react_1.default.createElement(react_scroll_1.Element, { name: enumType.name }, enumType.name)),
|
|
39
|
+
enumType.description ? (react_1.default.createElement("p", null, enumType.description)) : (react_1.default.createElement("p", null,
|
|
40
|
+
"Enum type with the following values: ",
|
|
41
|
+
react_1.default.createElement("b", null, enumType.values.join(', '))))));
|
|
42
|
+
const UnionTypeRenderer = ({ unionType }) => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
43
|
+
react_1.default.createElement("h3", null,
|
|
44
|
+
react_1.default.createElement(react_scroll_1.Element, { name: unionType.name }, unionType.name)),
|
|
45
|
+
unionType.description ? (react_1.default.createElement("p", null, unionType.description)) : (react_1.default.createElement("p", null,
|
|
46
|
+
"Union of the following types:",
|
|
47
|
+
' ',
|
|
48
|
+
unionType.types.map((_type, i) => (react_1.default.createElement(react_1.default.Fragment, { key: `${_type}-link` },
|
|
49
|
+
i === 0 ? '' : ', ',
|
|
50
|
+
react_1.default.createElement(LinkToElement, { to: _type }))))))));
|
|
51
|
+
const ScalarRenderer = ({ scalar }) => (react_1.default.createElement(react_1.default.Fragment, null,
|
|
52
|
+
react_1.default.createElement("h3", null,
|
|
53
|
+
react_1.default.createElement(react_scroll_1.Element, { name: scalar.name }, scalar.name)),
|
|
54
|
+
react_1.default.createElement("p", null, scalar.description)));
|
|
55
|
+
const SchemasRenderer = ({ schemaDocuments: { schema, contextSchema } }) => {
|
|
56
|
+
const { objectTypes: { Schema: attributesDocument, ...attributeObjectTypes } = { Schema: null }, scalars: attributeScalars, enumTypes: attributesEnumTypes, unionTypes: attributesUnionTypes, } = schema || {};
|
|
57
|
+
const { objectTypes: { ContextSchema: contextDocument, ...contextObjectTypes } = { ContextSchema: null }, scalars: contextScalars, enumTypes: contextEnumTypes, unionTypes: contextUnionTypes, } = contextSchema || {};
|
|
58
|
+
const objectTypeEntries = Object.values({ ...attributeObjectTypes, ...contextObjectTypes });
|
|
59
|
+
const scalars = Object.values({ ...attributeScalars, ...contextScalars });
|
|
60
|
+
const enumTypes = Object.values({ ...attributesEnumTypes, ...contextEnumTypes });
|
|
61
|
+
const unionTypes = Object.values({ ...attributesUnionTypes, ...contextUnionTypes });
|
|
62
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
63
|
+
react_1.default.createElement("h2", null, "Attributes"),
|
|
64
|
+
attributesDocument ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
65
|
+
react_1.default.createElement("p", null, "List of attributes supported by this extension point."),
|
|
66
|
+
react_1.default.createElement(TypeRenderer, { objectType: attributesDocument }))) : (react_1.default.createElement("p", null, "No attributes information provided for this extension point.")),
|
|
67
|
+
react_1.default.createElement("h2", null, "Context"),
|
|
68
|
+
contextDocument ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
69
|
+
react_1.default.createElement("p", null, "List of values provided by this extension point as context."),
|
|
70
|
+
react_1.default.createElement(TypeRenderer, { objectType: contextDocument }))) : (react_1.default.createElement("p", null, "No context information provided for this extension point.")),
|
|
71
|
+
react_1.default.createElement("h2", null, "Types reference"),
|
|
72
|
+
objectTypeEntries &&
|
|
73
|
+
objectTypeEntries.map((objectType) => (react_1.default.createElement(react_1.default.Fragment, { key: objectType.name },
|
|
74
|
+
react_1.default.createElement("h3", null,
|
|
75
|
+
react_1.default.createElement(react_scroll_1.Element, { name: objectType.name }, objectType.name)),
|
|
76
|
+
react_1.default.createElement(TypeRenderer, { objectType: objectType })))),
|
|
77
|
+
enumTypes && enumTypes.map((enumType) => react_1.default.createElement(EnumTypeRenderer, { key: enumType.name, enumType: enumType })),
|
|
78
|
+
unionTypes && unionTypes.map((unionType) => react_1.default.createElement(UnionTypeRenderer, { key: unionType.name, unionType: unionType })),
|
|
79
|
+
scalars && scalars.map((scalar) => react_1.default.createElement(ScalarRenderer, { key: scalar.name, scalar: scalar }))));
|
|
56
80
|
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
react_1.default.createElement(Blinker, { onClick: function () { return setDialogState(true); } }),
|
|
65
|
-
react_1.default.createElement(modal_dialog_1.ModalTransition, null, dialogOpen && (react_1.default.createElement(modal_dialog_1.default, { actions: [{ text: 'Close', onClick: closeDialog }], onClose: closeDialog, heading: "Extension Point information" }, content)))));
|
|
81
|
+
const bodyStyles = {
|
|
82
|
+
// Styles required for the react-scroll to work when scrolling is animated
|
|
83
|
+
overflowY: 'auto',
|
|
84
|
+
overflowX: 'hidden',
|
|
85
|
+
// The rest of the styles are copied from the @atlaskit/modal-dialog/dist/esm/modal-body.js
|
|
86
|
+
padding: (0, constants_1.gridSize)() * 3,
|
|
87
|
+
flex: '1 1 auto',
|
|
66
88
|
};
|
|
67
|
-
|
|
68
|
-
|
|
89
|
+
const CustomModalBody = ({ children }) => {
|
|
90
|
+
return (react_1.default.createElement("div", { id: "___cse_info_container", style: bodyStyles }, children));
|
|
91
|
+
};
|
|
92
|
+
const ExtensionPointInfo = ({ name, schemaDocuments }) => {
|
|
93
|
+
const [showExtensionPointInfo] = (0, useDiscovery_1.default)();
|
|
94
|
+
const [dialogOpen, setDialogState] = (0, react_1.useState)(false);
|
|
95
|
+
const closeDialog = () => setDialogState(false);
|
|
96
|
+
return !showExtensionPointInfo ? null : (react_1.default.createElement(styled_1.BlinkerContainer, null,
|
|
97
|
+
react_1.default.createElement(styled_1.Blinker, { type: "button", onClick: () => setDialogState(true) }),
|
|
98
|
+
react_1.default.createElement(modal_dialog_1.ModalTransition, null, dialogOpen && (react_1.default.createElement(modal_dialog_1.default, { onClose: closeDialog, width: "x-large" },
|
|
99
|
+
react_1.default.createElement(modal_dialog_1.ModalHeader, null,
|
|
100
|
+
react_1.default.createElement(modal_dialog_1.ModalTitle, null, `Extension point: ${name}`)),
|
|
101
|
+
react_1.default.createElement(CustomModalBody, null,
|
|
102
|
+
react_1.default.createElement(SchemasRenderer, { schemaDocuments: schemaDocuments })),
|
|
103
|
+
react_1.default.createElement(modal_dialog_1.ModalFooter, null,
|
|
104
|
+
react_1.default.createElement(standard_button_1.default, { appearance: "primary", autoFocus: true, onClick: closeDialog }, "Close")))))));
|
|
105
|
+
};
|
|
106
|
+
exports.default = (0, react_1.memo)(ExtensionPointInfo);
|
|
69
107
|
//# sourceMappingURL=ExtensionPointInfo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionPointInfo.js","sourceRoot":"","sources":["../../lib/ExtensionPointInfo.tsx"],"names":[],"mappings":";;;AAAA,qDAAwC;AACxC,6EAAgE;AAEhE,sCAA0C;AAC1C,mEAAqC;AAGrC,8EAAgD;AAGhD,IAAM,aAAa,GAAG,gBAAM,CAAC,GAAG,4HAAA,iDAG/B,IAAA,CAAC;AAEF,IAAM,kBAAkB,GAAG,gBAAM,CAAC,GAAG,qJAAA,0EAIpC,IAAA,CAAC;AAEF,IAAM,gBAAgB,GAAG,gBAAM,CAAC,IAAI,wGAAA,6BAEnC,IAAA,CAAC;AAEF,IAAM,cAAc,GAAG,gBAAS,mLAAA,wGAQ/B,IAAA,CAAC;AAEF,IAAM,OAAO,GAAG,gBAAM,CAAC,MAAM,ilBAAA,yHAKZ,EAAc,2YAiB9B,KAjBgB,cAAc,CAiB9B,CAAC;AAEF,IAAM,QAAQ,GAAG,gBAAM,CAAC,GAAG,0IAAA,+DAG1B,IAAA,CAAC;AAEF,IAAM,YAAY,GAAG,gBAAM,CAAC,GAAG,4HAAA,iDAG9B,IAAA,CAAC;AAEF,IAAM,2BAA2B,GAAG,gBAAM,CAAC,GAAG,yHAAA,8CAG7C,IAAA,CAAC;AAEF,IAAM,aAAa,GAAG,gBAAM,CAAC,IAAI,oGAAA,yBAEhC,IAAA,CAAC;AAEF,IAAM,cAAc,GAAG,gBAAM,CAAC,GAAG,yGAAA,4BAEhC,IAAA,CAAC;AAOF,uDAAuD;AACvD,IAAM,kBAAkB,GAAG,UAAC,EAAmD;QAAjD,KAAK,WAAA,EAAE,KAAK,WAAA;IACtC,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,IAAI,CAAC;KACf;IAED,OAAO,CACH,8BAAC,2BAA2B;QACvB,KAAK;;QAAG,8BAAC,aAAa,QAAE,KAAK,CAAiB,CACrB,CACjC,CAAC;AACN,CAAC,CAAC;AAEF,SAAS,gBAAgB,CAAC,IAAiB;IAC/B,IAAA,UAAU,GAAK,IAAI,WAAT,CAAU;IAE5B,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAErC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAA,YAAY;QAC3C,IAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAgB,CAAC;QAEzD,OAAO,CACH,8BAAC,QAAQ,IAAC,GAAG,EAAE,YAAY;YACvB,8BAAC,YAAY,QAAE,YAAY,CAAgB;YAC3C,8BAAC,kBAAkB,IAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,QAAQ,CAAC,IAAc,GAAI;YACnE,8BAAC,kBAAkB,IAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAI;YAClG,8BAAC,kBAAkB,IAAC,KAAK,EAAC,aAAa,EAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,GAAI;YACvE,8BAAC,kBAAkB,IAAC,KAAK,EAAC,QAAQ,EAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAI,CAAC,CAAC,CAAC,IAAI,GAAI;YACrG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,8BAAC,cAAc,QAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAkB,CAAC,CAAC,CAAC,IAAI,CAC3F,CACd,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC;AAED,IAAM,qBAAqB,GAAG,UAAC,IAAmB,EAAE,OAAyB;IACzE,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,oGAA+D,CAAC;KAC1E;IAED,IAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,wFAAmD,CAAC;IAClI,IAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAC3C,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAC1C,CAAC,CAAC,CAAC,CACA,yFAAoD,CACvD,CAAC;IAEF,OAAO,CACH,8BAAC,aAAa;QACV,8BAAC,kBAAkB,QAAE,IAAI,CAAsB;QAC/C,6DAAyB;QACxB,cAAc;QACf,iEAA6B;QAC5B,iBAAiB,CACN,CACnB,CAAC;AACN,CAAC,CAAC;AAEF,IAAM,kBAAkB,GAAG,UAAC,KAAY;IAC7B,IAAA,sBAAsB,GAAI,sBAAY,EAAE,GAAlB,CAAmB;IAExC,IAAA,IAAI,GAAc,KAAK,KAAnB,EAAE,OAAO,GAAK,KAAK,QAAV,CAAW;IAC1B,IAAA,KAA+B,gBAAQ,CAAC,KAAK,CAAC,EAA7C,UAAU,QAAA,EAAE,cAAc,QAAmB,CAAC;IAErD,IAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAErD,IAAM,WAAW,GAAG,cAAM,OAAA,cAAc,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC;IAChD,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACpC,8BAAC,gBAAgB;QACb,8BAAC,OAAO,IAAC,OAAO,EAAE,cAAM,OAAA,cAAc,CAAC,IAAI,CAAC,EAApB,CAAoB,GAAI;QAChD,8BAAC,8BAAe,QACX,UAAU,IAAI,CACX,8BAAC,sBAAK,IAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAC,6BAA6B,IACjH,OAAO,CACJ,CACX,CACa,CACH,CACtB,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"ExtensionPointInfo.js","sourceRoot":"","sources":["../../lib/ExtensionPointInfo.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { FunctionComponent } from 'react';\nimport React, { memo, useState } from 'react';\nimport Button from '@atlaskit/button/standard-button';\nimport Modal, { ModalTransition, ModalTitle, ModalHeader, ModalFooter } from '@atlaskit/modal-dialog';\nimport { Link, Element } from 'react-scroll';\n\nimport type {\n SerializedDocument,\n SerializedEnumType,\n SerializedObjectType,\n SerializedScalar,\n SerializedUnionType,\n // We only import types here\n // eslint-disable-next-line node/no-unpublished-import\n} from '@atlassian/clientside-extensions-schema';\nimport { gridSize } from '@atlaskit/theme/constants';\nimport useDiscovery from './debug/useDiscovery';\nimport { Table, TableCell, TableRow, HeadRow, HeadCell, Blinker, BlinkerContainer } from './styled';\n\nexport type ExtensionPointInfoProps = {\n name: string;\n schemaDocuments: { schema: SerializedDocument; contextSchema: SerializedDocument };\n};\n\nconst LinkToElement = ({ to }: { to: string }) => {\n // TODO: is there a way to get the clean type from the schema?\n // We are removing the e.g. \"!\" required syntax that is a suffix of the schema type\n const cleanTo = to.replace(/[^a-zA-Z0-9]/g, '');\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\n <Link to={cleanTo} href=\"\" containerId=\"___cse_info_container\" offset={-20} smooth>\n {to}\n </Link>\n );\n};\n\nconst TypeRenderer: FunctionComponent<{ objectType: SerializedObjectType }> = ({ objectType }) => (\n <>\n <p>{objectType.description}</p>\n <Table>\n <thead>\n <HeadRow>\n <HeadCell>Name</HeadCell>\n <HeadCell>Type</HeadCell>\n <HeadCell>Required</HeadCell>\n <HeadCell>Description</HeadCell>\n </HeadRow>\n </thead>\n <tbody>\n {objectType.descriptors.map((descriptor) => (\n <TableRow key={descriptor.name}>\n <TableCell width=\"15%\"> {descriptor.name}</TableCell>\n <TableCell width=\"15%\">\n <LinkToElement to={descriptor.type} />\n </TableCell>\n <TableCell width=\"10%\">{descriptor.required ? 'true' : 'false'}</TableCell>\n <TableCell>{descriptor.description}</TableCell>\n </TableRow>\n ))}\n </tbody>\n </Table>\n </>\n);\n\nconst EnumTypeRenderer = ({ enumType }: { enumType: SerializedEnumType }) => (\n <>\n <h3>\n <Element name={enumType.name}>{enumType.name}</Element>\n </h3>\n {enumType.description ? (\n <p>{enumType.description}</p>\n ) : (\n <p>\n Enum type with the following values: <b>{enumType.values.join(', ')}</b>\n </p>\n )}\n </>\n);\n\nconst UnionTypeRenderer = ({ unionType }: { unionType: SerializedUnionType }) => (\n <>\n <h3>\n <Element name={unionType.name}>{unionType.name}</Element>\n </h3>\n {unionType.description ? (\n <p>{unionType.description}</p>\n ) : (\n <p>\n Union of the following types:{' '}\n {unionType.types.map((_type, i) => (\n <React.Fragment key={`${_type}-link`}>\n {i === 0 ? '' : ', '}\n <LinkToElement to={_type} />\n </React.Fragment>\n ))}\n </p>\n )}\n </>\n);\n\nconst ScalarRenderer = ({ scalar }: { scalar: SerializedScalar }) => (\n <>\n <h3>\n <Element name={scalar.name}>{scalar.name}</Element>\n </h3>\n <p>{scalar.description}</p>\n </>\n);\n\nconst SchemasRenderer = ({ schemaDocuments: { schema, contextSchema } }: Omit<ExtensionPointInfoProps, 'name'>) => {\n const {\n objectTypes: { Schema: attributesDocument, ...attributeObjectTypes } = { Schema: null },\n scalars: attributeScalars,\n enumTypes: attributesEnumTypes,\n unionTypes: attributesUnionTypes,\n } = schema || {};\n\n const {\n objectTypes: { ContextSchema: contextDocument, ...contextObjectTypes } = { ContextSchema: null },\n scalars: contextScalars,\n enumTypes: contextEnumTypes,\n unionTypes: contextUnionTypes,\n } = contextSchema || {};\n\n const objectTypeEntries: SerializedObjectType[] = Object.values({ ...attributeObjectTypes, ...contextObjectTypes });\n const scalars: SerializedScalar[] = Object.values({ ...attributeScalars, ...contextScalars });\n const enumTypes: SerializedEnumType[] = Object.values({ ...attributesEnumTypes, ...contextEnumTypes });\n const unionTypes: SerializedUnionType[] = Object.values({ ...attributesUnionTypes, ...contextUnionTypes });\n\n return (\n <>\n <h2>Attributes</h2>\n {attributesDocument ? (\n <>\n <p>List of attributes supported by this extension point.</p>\n <TypeRenderer objectType={attributesDocument} />\n </>\n ) : (\n <p>No attributes information provided for this extension point.</p>\n )}\n\n <h2>Context</h2>\n {contextDocument ? (\n <>\n <p>List of values provided by this extension point as context.</p>\n <TypeRenderer objectType={contextDocument} />\n </>\n ) : (\n <p>No context information provided for this extension point.</p>\n )}\n\n <h2>Types reference</h2>\n {objectTypeEntries &&\n objectTypeEntries.map((objectType) => (\n <React.Fragment key={objectType.name}>\n <h3>\n <Element name={objectType.name}>{objectType.name}</Element>\n </h3>\n <TypeRenderer objectType={objectType} />\n </React.Fragment>\n ))}\n\n {enumTypes && enumTypes.map((enumType) => <EnumTypeRenderer key={enumType.name} enumType={enumType} />)}\n\n {unionTypes && unionTypes.map((unionType) => <UnionTypeRenderer key={unionType.name} unionType={unionType} />)}\n\n {scalars && scalars.map((scalar) => <ScalarRenderer key={scalar.name} scalar={scalar} />)}\n </>\n );\n};\n\nconst bodyStyles: React.CSSProperties = {\n // Styles required for the react-scroll to work when scrolling is animated\n overflowY: 'auto',\n overflowX: 'hidden',\n // The rest of the styles are copied from the @atlaskit/modal-dialog/dist/esm/modal-body.js\n padding: gridSize() * 3,\n flex: '1 1 auto',\n};\n\nconst CustomModalBody: React.FC = ({ children }) => {\n return (\n <div id=\"___cse_info_container\" style={bodyStyles}>\n {children}\n </div>\n );\n};\n\nconst ExtensionPointInfo: React.FC<ExtensionPointInfoProps> = ({ name, schemaDocuments }) => {\n const [showExtensionPointInfo] = useDiscovery();\n const [dialogOpen, setDialogState] = useState(false);\n\n const closeDialog = () => setDialogState(false);\n return !showExtensionPointInfo ? null : (\n <BlinkerContainer>\n <Blinker type=\"button\" onClick={() => setDialogState(true)} />\n <ModalTransition>\n {dialogOpen && (\n <Modal onClose={closeDialog} width=\"x-large\">\n <ModalHeader>\n <ModalTitle>{`Extension point: ${name}`}</ModalTitle>\n </ModalHeader>\n\n <CustomModalBody>\n <SchemasRenderer schemaDocuments={schemaDocuments} />\n </CustomModalBody>\n\n <ModalFooter>\n {/* eslint-disable-next-line jsx-a11y/no-autofocus */}\n <Button appearance=\"primary\" autoFocus onClick={closeDialog}>\n Close\n </Button>\n </ModalFooter>\n </Modal>\n )}\n </ModalTransition>\n </BlinkerContainer>\n );\n};\n\nexport default memo(ExtensionPointInfo);\n"]}
|