@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.
Files changed (190) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/ExtensionPoint.js +13 -16
  3. package/dist/cjs/ExtensionPoint.js.map +1 -1
  4. package/dist/cjs/ExtensionPointInfo.js +101 -63
  5. package/dist/cjs/ExtensionPointInfo.js.map +1 -1
  6. package/dist/cjs/ExtensionsObservable.js +380 -0
  7. package/dist/cjs/ExtensionsObservable.js.map +1 -0
  8. package/dist/cjs/debug/types.js +3 -0
  9. package/dist/cjs/debug/types.js.map +1 -0
  10. package/dist/cjs/debug/useDebug.js +9 -8
  11. package/dist/cjs/debug/useDebug.js.map +1 -1
  12. package/dist/cjs/debug/useDiscovery.js +9 -8
  13. package/dist/cjs/debug/useDiscovery.js.map +1 -1
  14. package/dist/cjs/debug/useLogging.js +9 -8
  15. package/dist/cjs/debug/useLogging.js.map +1 -1
  16. package/dist/cjs/debug/useValidation.js +9 -8
  17. package/dist/cjs/debug/useValidation.js.map +1 -1
  18. package/dist/cjs/handlers/AsyncPanelHandler.js +69 -101
  19. package/dist/cjs/handlers/AsyncPanelHandler.js.map +1 -1
  20. package/dist/cjs/handlers/ButtonHandler.js +9 -11
  21. package/dist/cjs/handlers/ButtonHandler.js.map +1 -1
  22. package/dist/cjs/handlers/LinkHandler.js +9 -11
  23. package/dist/cjs/handlers/LinkHandler.js.map +1 -1
  24. package/dist/cjs/handlers/ModalHandler.js +55 -142
  25. package/dist/cjs/handlers/ModalHandler.js.map +1 -1
  26. package/dist/cjs/handlers/PanelHandler.js +18 -35
  27. package/dist/cjs/handlers/PanelHandler.js.map +1 -1
  28. package/dist/cjs/handlers/SectionHandler.js +6 -11
  29. package/dist/cjs/handlers/SectionHandler.js.map +1 -1
  30. package/dist/cjs/handlers/index.js +16 -14
  31. package/dist/cjs/handlers/index.js.map +1 -1
  32. package/dist/cjs/handlers/types.js +3 -0
  33. package/dist/cjs/handlers/types.js.map +1 -0
  34. package/dist/cjs/index.js +16 -9
  35. package/dist/cjs/index.js.map +1 -1
  36. package/dist/cjs/renderElementAsReact.js +17 -0
  37. package/dist/cjs/renderElementAsReact.js.map +1 -0
  38. package/dist/cjs/styled.js +110 -0
  39. package/dist/cjs/styled.js.map +1 -0
  40. package/dist/cjs/types.js +5 -0
  41. package/dist/cjs/types.js.map +1 -1
  42. package/dist/cjs/useExtensions.js +37 -288
  43. package/dist/cjs/useExtensions.js.map +1 -1
  44. package/dist/cjs/useWebPanelRenderer.js +70 -0
  45. package/dist/cjs/useWebPanelRenderer.js.map +1 -0
  46. package/dist/esm/ExtensionPoint.js +10 -13
  47. package/dist/esm/ExtensionPoint.js.map +1 -1
  48. package/dist/esm/ExtensionPointInfo.js +98 -61
  49. package/dist/esm/ExtensionPointInfo.js.map +1 -1
  50. package/dist/esm/ExtensionsObservable.js +374 -0
  51. package/dist/esm/ExtensionsObservable.js.map +1 -0
  52. package/dist/esm/debug/types.js +2 -0
  53. package/dist/esm/debug/types.js.map +1 -0
  54. package/dist/esm/debug/useDebug.js +7 -6
  55. package/dist/esm/debug/useDebug.js.map +1 -1
  56. package/dist/esm/debug/useDiscovery.js +7 -6
  57. package/dist/esm/debug/useDiscovery.js.map +1 -1
  58. package/dist/esm/debug/useLogging.js +7 -6
  59. package/dist/esm/debug/useLogging.js.map +1 -1
  60. package/dist/esm/debug/useValidation.js +7 -6
  61. package/dist/esm/debug/useValidation.js.map +1 -1
  62. package/dist/esm/handlers/AsyncPanelHandler.js +63 -97
  63. package/dist/esm/handlers/AsyncPanelHandler.js.map +1 -1
  64. package/dist/esm/handlers/ButtonHandler.js +5 -8
  65. package/dist/esm/handlers/ButtonHandler.js.map +1 -1
  66. package/dist/esm/handlers/LinkHandler.js +5 -8
  67. package/dist/esm/handlers/LinkHandler.js.map +1 -1
  68. package/dist/esm/handlers/ModalHandler.js +51 -140
  69. package/dist/esm/handlers/ModalHandler.js.map +1 -1
  70. package/dist/esm/handlers/PanelHandler.js +13 -31
  71. package/dist/esm/handlers/PanelHandler.js.map +1 -1
  72. package/dist/esm/handlers/SectionHandler.js +2 -8
  73. package/dist/esm/handlers/SectionHandler.js.map +1 -1
  74. package/dist/esm/handlers/index.js +7 -7
  75. package/dist/esm/handlers/index.js.map +1 -1
  76. package/dist/esm/handlers/types.js +2 -0
  77. package/dist/esm/handlers/types.js.map +1 -0
  78. package/dist/esm/index.js +3 -0
  79. package/dist/esm/index.js.map +1 -1
  80. package/dist/esm/renderElementAsReact.js +14 -0
  81. package/dist/esm/renderElementAsReact.js.map +1 -0
  82. package/dist/esm/styled.js +106 -0
  83. package/dist/esm/styled.js.map +1 -0
  84. package/dist/esm/types.js +3 -0
  85. package/dist/esm/types.js.map +1 -1
  86. package/dist/esm/useExtensions.js +29 -285
  87. package/dist/esm/useExtensions.js.map +1 -1
  88. package/dist/esm/useWebPanelRenderer.js +68 -0
  89. package/dist/esm/useWebPanelRenderer.js.map +1 -0
  90. package/dist/types/ExtensionPoint.d.ts +8 -9
  91. package/dist/types/ExtensionPoint.d.ts.map +1 -1
  92. package/dist/types/ExtensionPointInfo.d.ts +10 -7
  93. package/dist/types/ExtensionPointInfo.d.ts.map +1 -1
  94. package/dist/types/ExtensionsObservable.d.ts +6 -0
  95. package/dist/types/ExtensionsObservable.d.ts.map +1 -0
  96. package/dist/types/debug/types.d.ts +2 -0
  97. package/dist/types/debug/types.d.ts.map +1 -0
  98. package/dist/types/debug/useDebug.d.ts +3 -2
  99. package/dist/types/debug/useDebug.d.ts.map +1 -1
  100. package/dist/types/debug/useDiscovery.d.ts +3 -2
  101. package/dist/types/debug/useDiscovery.d.ts.map +1 -1
  102. package/dist/types/debug/useLogging.d.ts +3 -2
  103. package/dist/types/debug/useLogging.d.ts.map +1 -1
  104. package/dist/types/debug/useValidation.d.ts +3 -2
  105. package/dist/types/debug/useValidation.d.ts.map +1 -1
  106. package/dist/types/handlers/AsyncPanelHandler.d.ts +8 -7
  107. package/dist/types/handlers/AsyncPanelHandler.d.ts.map +1 -1
  108. package/dist/types/handlers/ButtonHandler.d.ts +5 -7
  109. package/dist/types/handlers/ButtonHandler.d.ts.map +1 -1
  110. package/dist/types/handlers/LinkHandler.d.ts +6 -6
  111. package/dist/types/handlers/LinkHandler.d.ts.map +1 -1
  112. package/dist/types/handlers/ModalHandler.d.ts +11 -53
  113. package/dist/types/handlers/ModalHandler.d.ts.map +1 -1
  114. package/dist/types/handlers/PanelHandler.d.ts +5 -18
  115. package/dist/types/handlers/PanelHandler.d.ts.map +1 -1
  116. package/dist/types/handlers/SectionHandler.d.ts +2 -6
  117. package/dist/types/handlers/SectionHandler.d.ts.map +1 -1
  118. package/dist/types/handlers/index.d.ts +7 -7
  119. package/dist/types/handlers/index.d.ts.map +1 -1
  120. package/dist/types/handlers/types.d.ts +12 -0
  121. package/dist/types/handlers/types.d.ts.map +1 -0
  122. package/dist/types/index.d.ts +5 -1
  123. package/dist/types/index.d.ts.map +1 -1
  124. package/dist/types/renderElementAsReact.d.ts +5 -0
  125. package/dist/types/renderElementAsReact.d.ts.map +1 -0
  126. package/dist/types/styled.d.ts +15 -0
  127. package/dist/types/styled.d.ts.map +1 -0
  128. package/dist/types/types.d.ts +17 -1
  129. package/dist/types/types.d.ts.map +1 -1
  130. package/dist/types/useExtensions.d.ts +6 -11
  131. package/dist/types/useExtensions.d.ts.map +1 -1
  132. package/dist/types/useWebPanelRenderer.d.ts +3 -0
  133. package/dist/types/useWebPanelRenderer.d.ts.map +1 -0
  134. package/lib/ExtensionPoint.test.tsx +34 -30
  135. package/lib/ExtensionPoint.tsx +11 -12
  136. package/lib/ExtensionPointInfo.test.tsx +128 -31
  137. package/lib/ExtensionPointInfo.tsx +193 -139
  138. package/lib/ExtensionsObservable.test.ts +434 -0
  139. package/lib/ExtensionsObservable.ts +510 -0
  140. package/lib/__snapshots__/ExtensionPoint.test.tsx.snap +2 -2
  141. package/lib/__snapshots__/ExtensionPointInfo.test.tsx.snap +453 -109
  142. package/lib/debug/types.ts +1 -0
  143. package/lib/debug/useDebug.test.ts +12 -5
  144. package/lib/debug/useDebug.ts +7 -4
  145. package/lib/debug/useDiscovery.test.ts +12 -5
  146. package/lib/debug/useDiscovery.ts +7 -4
  147. package/lib/debug/useLogging.test.ts +12 -5
  148. package/lib/debug/useLogging.ts +7 -4
  149. package/lib/debug/useValidation.test.ts +12 -5
  150. package/lib/debug/useValidation.ts +7 -4
  151. package/lib/handlers/AsyncPanelHandler.test.tsx +21 -21
  152. package/lib/handlers/AsyncPanelHandler.tsx +35 -33
  153. package/lib/handlers/ButtonHandler.test.tsx +49 -18
  154. package/lib/handlers/ButtonHandler.tsx +31 -11
  155. package/lib/handlers/LinkHandler.test.tsx +56 -18
  156. package/lib/handlers/LinkHandler.tsx +34 -9
  157. package/lib/handlers/ModalHandler.test.tsx +178 -138
  158. package/lib/handlers/ModalHandler.tsx +108 -187
  159. package/lib/handlers/PanelHandler.test.tsx +9 -11
  160. package/lib/handlers/PanelHandler.tsx +24 -45
  161. package/lib/handlers/SectionHandler.test.tsx +13 -20
  162. package/lib/handlers/SectionHandler.tsx +4 -10
  163. package/lib/handlers/index.ts +7 -7
  164. package/lib/handlers/types.ts +12 -0
  165. package/lib/index.ts +7 -1
  166. package/lib/renderElementAsReact.test.tsx +76 -0
  167. package/lib/renderElementAsReact.tsx +17 -0
  168. package/lib/styled.ts +116 -0
  169. package/lib/types.ts +23 -1
  170. package/lib/useExtensions.test.ts +216 -158
  171. package/lib/useExtensions.ts +48 -338
  172. package/lib/useWebPanelRenderer.tsx +81 -0
  173. package/package.json +34 -22
  174. package/dist/cjs/validation/validation-async.js +0 -17
  175. package/dist/cjs/validation/validation-async.js.map +0 -1
  176. package/dist/cjs/validation/validation.js +0 -48
  177. package/dist/cjs/validation/validation.js.map +0 -1
  178. package/dist/esm/validation/validation-async.js +0 -13
  179. package/dist/esm/validation/validation-async.js.map +0 -1
  180. package/dist/esm/validation/validation.js +0 -26
  181. package/dist/esm/validation/validation.js.map +0 -1
  182. package/dist/tsconfig.cjs.tsbuildinfo +0 -9127
  183. package/dist/tsconfig.tsbuildinfo +0 -9127
  184. package/dist/types/validation/validation-async.d.ts +0 -3
  185. package/dist/types/validation/validation-async.d.ts.map +0 -1
  186. package/dist/types/validation/validation.d.ts +0 -3
  187. package/dist/types/validation/validation.d.ts.map +0 -1
  188. package/lib/validation/validation-async.ts +0 -16
  189. package/lib/validation/validation.test.ts +0 -61
  190. 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 plugin points that work at product runtime.
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 plugin type that already implement Atlaskit.
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
- var tslib_1 = require("tslib");
4
- var clientside_extensions_debug_1 = require("@atlassian/clientside-extensions-debug");
5
- var react_1 = tslib_1.__importDefault(require("react"));
6
- var useExtensions_1 = require("./useExtensions");
7
- function ExtensionPoint(_a) {
8
- var name = _a.name, context = _a.context, options = _a.options, children = _a.children;
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(function (_a) {
12
- var error = _a.error;
10
+ (0, clientside_extensions_debug_1.onDebug)(({ error }) => {
13
11
  return {
14
12
  level: error,
15
- // eslint-disable-next-line max-len
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: name,
20
- context: context,
21
- options: 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,sFAAiE;AACjE,wDAA0B;AAC1B,iDAA4D;AAW5D,SAAS,cAAc,CAAC,EAAyD;QAAvD,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,OAAO,aAAA,EAAE,QAAQ,cAAA;IAChD,IAAA,KAA4D,gCAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAnG,oBAAoB,QAAA,EAAE,sBAAsB,QAAA,EAAE,SAAS,QAA4C,CAAC;IAE3G,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;QAChC,qCAAO,CAAC,UAAC,EAAS;gBAAP,KAAK,WAAA;YACZ,OAAO;gBACH,KAAK,EAAE,KAAK;gBACZ,mCAAmC;gBACnC,OAAO,EAAE,oGAA+F,IAAI,0BAAsB;gBAClI,UAAU,EAAE,gBAAgB;gBAC5B,IAAI,EAAE;oBACF,IAAI,MAAA;oBACJ,OAAO,SAAA;oBACP,OAAO,SAAA;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;AAED,kBAAe,cAAc,CAAC"}
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
- var tslib_1 = require("tslib");
4
- var react_1 = tslib_1.__importStar(require("react"));
5
- var modal_dialog_1 = tslib_1.__importStar(require("@atlaskit/modal-dialog"));
6
- var core_1 = require("@emotion/core");
7
- var styled_1 = tslib_1.__importDefault(require("@emotion/styled"));
8
- var useDiscovery_1 = tslib_1.__importDefault(require("./debug/useDiscovery"));
9
- var InfoContainer = styled_1.default.div(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n max-height: 448px;\n overflow: auto;\n"], ["\n max-height: 448px;\n overflow: auto;\n"])));
10
- var ExtensionPointName = styled_1.default.div(templateObject_2 || (templateObject_2 = tslib_1.__makeTemplateObject(["\n font-size: 18px;\n font-style: italic;\n margin: 0 0 12px;\n"], ["\n font-size: 18px;\n font-style: italic;\n margin: 0 0 12px;\n"])));
11
- var BlinkerContainer = styled_1.default.span(templateObject_3 || (templateObject_3 = tslib_1.__makeTemplateObject(["\n position: relative;\n"], ["\n position: relative;\n"])));
12
- var blinkAnimation = core_1.keyframes(templateObject_4 || (templateObject_4 = tslib_1.__makeTemplateObject(["\n from {\n transform: scale(1);\n }\n\n to {\n transform: scale(1.3);\n }\n"], ["\n from {\n transform: scale(1);\n }\n\n to {\n transform: scale(1.3);\n }\n"])));
13
- var Blinker = styled_1.default.button(templateObject_5 || (templateObject_5 = tslib_1.__makeTemplateObject(["\n height: 22px;\n width: 22px;\n background: rgba(7, 71, 166, 0.5);\n border-radius: 50%;\n animation: ", " 1s ease-in-out infinite;\n animation-direction: alternate;\n cursor: pointer;\n border: none;\n\n &:after {\n display: block;\n background: rgb(7, 71, 166, 0.8);\n position: absolute;\n height: 12px;\n width: 12px;\n content: '';\n left: 50%;\n top: 50%;\n margin: -6px 0 0 -6px;\n border-radius: 50%;\n }\n"], ["\n height: 22px;\n width: 22px;\n background: rgba(7, 71, 166, 0.5);\n border-radius: 50%;\n animation: ", " 1s ease-in-out infinite;\n animation-direction: alternate;\n cursor: pointer;\n border: none;\n\n &:after {\n display: block;\n background: rgb(7, 71, 166, 0.8);\n position: absolute;\n height: 12px;\n width: 12px;\n content: '';\n left: 50%;\n top: 50%;\n margin: -6px 0 0 -6px;\n border-radius: 50%;\n }\n"])), blinkAnimation);
14
- var Property = styled_1.default.div(templateObject_6 || (templateObject_6 = tslib_1.__makeTemplateObject(["\n margin: 0 0 10px;\n border-bottom: 1px solid #ccc;\n"], ["\n margin: 0 0 10px;\n border-bottom: 1px solid #ccc;\n"])));
15
- var PropertyName = styled_1.default.div(templateObject_7 || (templateObject_7 = tslib_1.__makeTemplateObject(["\n font-size: 16px;\n margin: 0 0 10px;\n"], ["\n font-size: 16px;\n margin: 0 0 10px;\n"])));
16
- var PropertyDescriptorContainer = styled_1.default.div(templateObject_8 || (templateObject_8 = tslib_1.__makeTemplateObject(["\n margin: 6px 0;\n font-size: 12px;\n"], ["\n margin: 6px 0;\n font-size: 12px;\n"])));
17
- var PropertyValue = styled_1.default.span(templateObject_9 || (templateObject_9 = tslib_1.__makeTemplateObject(["\n color: #828282;\n"], ["\n color: #828282;\n"])));
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
- function renderSchemaNode(node) {
31
- var properties = node.properties;
32
- var required = node.required || [];
33
- return Object.keys(properties).map(function (propertyName) {
34
- var property = properties[propertyName];
35
- return (react_1.default.createElement(Property, { key: propertyName },
36
- react_1.default.createElement(PropertyName, null, propertyName),
37
- react_1.default.createElement(PropertyDescriptor, { label: "Type", value: property.type }),
38
- react_1.default.createElement(PropertyDescriptor, { label: "Required", value: required.includes(propertyName) ? 'true' : 'false' }),
39
- react_1.default.createElement(PropertyDescriptor, { label: "Description", value: property.description }),
40
- react_1.default.createElement(PropertyDescriptor, { label: "Values", value: property.enum ? "[ " + property.enum.join(', ') + " ]" : null }),
41
- property.type === 'object' ? react_1.default.createElement(NestedProperty, null, renderSchemaNode(property)) : null));
42
- });
43
- }
44
- var getExtensionPointInfo = function (name, schemas) {
45
- if (!schemas) {
46
- return react_1.default.createElement("p", null, "No schema information available for this extension point");
47
- }
48
- var extensionsContent = schemas.schema ? renderSchemaNode(schemas.schema) : react_1.default.createElement("p", null, "No schema available for this extension point");
49
- var contextContent = schemas.contextSchema ? (renderSchemaNode(schemas.contextSchema)) : (react_1.default.createElement("p", null, "No context available for this extension point"));
50
- return (react_1.default.createElement(InfoContainer, null,
51
- react_1.default.createElement(ExtensionPointName, null, name),
52
- react_1.default.createElement("h2", null, "Provided context"),
53
- contextContent,
54
- react_1.default.createElement("h2", null, "Supported attributes"),
55
- extensionsContent));
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
- var ExtensionPointInfo = function (props) {
58
- var showExtensionPointInfo = useDiscovery_1.default()[0];
59
- var name = props.name, schemas = props.schemas;
60
- var _a = react_1.useState(false), dialogOpen = _a[0], setDialogState = _a[1];
61
- var content = getExtensionPointInfo(name, schemas);
62
- var closeDialog = function () { return setDialogState(false); };
63
- return !showExtensionPointInfo ? null : (react_1.default.createElement(BlinkerContainer, null,
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
- exports.default = ExtensionPointInfo;
68
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
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":"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"}
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"]}