@imposium-hub/components 2.13.5 → 2.13.6

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/dist/cjs/components/app-wrapper/AppWrapper.js +5 -2
  2. package/dist/cjs/components/app-wrapper/AppWrapper.js.map +1 -1
  3. package/dist/cjs/components/app-wrapper/AppWrapperV2.d.ts +26 -0
  4. package/dist/cjs/components/app-wrapper/AppWrapperV2.js +266 -0
  5. package/dist/cjs/components/app-wrapper/AppWrapperV2.js.map +1 -0
  6. package/dist/cjs/components/app-wrapper/AppWrapperV3.d.ts +19 -0
  7. package/dist/cjs/components/app-wrapper/AppWrapperV3.js +195 -0
  8. package/dist/cjs/components/app-wrapper/AppWrapperV3.js.map +1 -0
  9. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  10. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js +243 -0
  11. package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  12. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  13. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js +255 -0
  14. package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  15. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  16. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js +243 -0
  17. package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  18. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  19. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js +251 -0
  20. package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  21. package/dist/cjs/components/auth-gate/AuthGate.d.ts +2 -0
  22. package/dist/cjs/components/auth-gate/AuthGate.js +105 -0
  23. package/dist/cjs/components/auth-gate/AuthGate.js.map +1 -0
  24. package/dist/cjs/components/dropdown/dropdown.stories.js +1 -1
  25. package/dist/cjs/components/dropdown/dropdown.stories.js.map +1 -1
  26. package/dist/cjs/components/edit-guide-modal/EditGuideModal.d.ts +8 -0
  27. package/dist/cjs/components/edit-guide-modal/EditGuideModal.js +132 -0
  28. package/dist/cjs/components/edit-guide-modal/EditGuideModal.js.map +1 -0
  29. package/dist/cjs/components/edit-marker-modal/EditMarkerModal.d.ts +8 -0
  30. package/dist/cjs/components/edit-marker-modal/EditMarkerModal.js +104 -0
  31. package/dist/cjs/components/edit-marker-modal/EditMarkerModal.js.map +1 -0
  32. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  33. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js +91 -0
  34. package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  35. package/dist/cjs/components/feature-flag-wrapper/FeatureFlagWrapper.d.ts +7 -0
  36. package/dist/cjs/components/feature-flag-wrapper/FeatureFlagWrapper.js +48 -0
  37. package/dist/cjs/components/feature-flag-wrapper/FeatureFlagWrapper.js.map +1 -0
  38. package/dist/cjs/components/header/Header_BACKUP_73021.d.ts +33 -0
  39. package/dist/cjs/components/header/Header_BACKUP_73021.js +393 -0
  40. package/dist/cjs/components/header/Header_BACKUP_73021.js.map +1 -0
  41. package/dist/cjs/components/header/Header_BASE_73021.d.ts +29 -0
  42. package/dist/cjs/components/header/Header_BASE_73021.js +376 -0
  43. package/dist/cjs/components/header/Header_BASE_73021.js.map +1 -0
  44. package/dist/cjs/components/header/Header_LOCAL_73021.d.ts +33 -0
  45. package/dist/cjs/components/header/Header_LOCAL_73021.js +382 -0
  46. package/dist/cjs/components/header/Header_LOCAL_73021.js.map +1 -0
  47. package/dist/cjs/components/header/Header_REMOTE_73021.d.ts +30 -0
  48. package/dist/cjs/components/header/Header_REMOTE_73021.js +386 -0
  49. package/dist/cjs/components/header/Header_REMOTE_73021.js.map +1 -0
  50. package/dist/cjs/components/header/ProjectDropdown.js +3 -16
  51. package/dist/cjs/components/header/ProjectDropdown.js.map +1 -1
  52. package/dist/cjs/components/header/StoryDropdown.d.ts +6 -0
  53. package/dist/cjs/components/header/StoryDropdown.js +111 -0
  54. package/dist/cjs/components/header/StoryDropdown.js.map +1 -0
  55. package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.d.ts +11 -0
  56. package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.js +213 -0
  57. package/dist/cjs/components/replace-files-modal/ReplaceFilesModal.js.map +1 -0
  58. package/dist/cjs/redux/actions/auth.d.ts +9 -0
  59. package/dist/cjs/redux/actions/auth.js +30 -0
  60. package/dist/cjs/redux/actions/auth.js.map +1 -0
  61. package/dist/cjs/redux/reducers/auth.d.ts +3 -0
  62. package/dist/cjs/redux/reducers/auth.js +67 -0
  63. package/dist/cjs/redux/reducers/auth.js.map +1 -0
  64. package/dist/cjs/services/Auth0.d.ts +18 -0
  65. package/dist/cjs/services/Auth0.js +102 -0
  66. package/dist/cjs/services/Auth0.js.map +1 -0
  67. package/dist/cjs/services/Session.d.ts +26 -0
  68. package/dist/cjs/services/Session.js +155 -0
  69. package/dist/cjs/services/Session.js.map +1 -0
  70. package/dist/esm/components/app-wrapper/AppWrapper.js +4 -1
  71. package/dist/esm/components/app-wrapper/AppWrapper.js.map +1 -1
  72. package/dist/esm/components/app-wrapper/AppWrapperV2.d.ts +26 -0
  73. package/dist/esm/components/app-wrapper/AppWrapperV2.js +142 -0
  74. package/dist/esm/components/app-wrapper/AppWrapperV2.js.map +1 -0
  75. package/dist/esm/components/app-wrapper/AppWrapperV3.d.ts +19 -0
  76. package/dist/esm/components/app-wrapper/AppWrapperV3.js +88 -0
  77. package/dist/esm/components/app-wrapper/AppWrapperV3.js.map +1 -0
  78. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
  79. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
  80. package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
  81. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
  82. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
  83. package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
  84. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
  85. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
  86. package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
  87. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
  88. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
  89. package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
  90. package/dist/esm/components/auth-gate/AuthGate.d.ts +2 -0
  91. package/dist/esm/components/auth-gate/AuthGate.js +59 -0
  92. package/dist/esm/components/auth-gate/AuthGate.js.map +1 -0
  93. package/dist/esm/components/dropdown/dropdown.stories.js +1 -1
  94. package/dist/esm/components/dropdown/dropdown.stories.js.map +1 -1
  95. package/dist/esm/components/edit-guide-modal/EditGuideModal.d.ts +8 -0
  96. package/dist/esm/components/edit-guide-modal/EditGuideModal.js +65 -0
  97. package/dist/esm/components/edit-guide-modal/EditGuideModal.js.map +1 -0
  98. package/dist/esm/components/edit-marker-modal/EditMarkerModal.d.ts +8 -0
  99. package/dist/esm/components/edit-marker-modal/EditMarkerModal.js +72 -0
  100. package/dist/esm/components/edit-marker-modal/EditMarkerModal.js.map +1 -0
  101. package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
  102. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
  103. package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
  104. package/dist/esm/components/feature-flag-wrapper/FeatureFlagWrapper.d.ts +7 -0
  105. package/dist/esm/components/feature-flag-wrapper/FeatureFlagWrapper.js +10 -0
  106. package/dist/esm/components/feature-flag-wrapper/FeatureFlagWrapper.js.map +1 -0
  107. package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
  108. package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
  109. package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
  110. package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
  111. package/dist/esm/components/header/Header_BASE_73021.js +322 -0
  112. package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
  113. package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
  114. package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
  115. package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
  116. package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
  117. package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
  118. package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
  119. package/dist/esm/components/header/ProjectDropdown.js +1 -14
  120. package/dist/esm/components/header/ProjectDropdown.js.map +1 -1
  121. package/dist/esm/components/header/StoryDropdown.d.ts +6 -0
  122. package/dist/esm/components/header/StoryDropdown.js +82 -0
  123. package/dist/esm/components/header/StoryDropdown.js.map +1 -0
  124. package/dist/esm/components/replace-files-modal/ReplaceFilesModal.d.ts +11 -0
  125. package/dist/esm/components/replace-files-modal/ReplaceFilesModal.js +141 -0
  126. package/dist/esm/components/replace-files-modal/ReplaceFilesModal.js.map +1 -0
  127. package/dist/esm/redux/actions/auth.d.ts +9 -0
  128. package/dist/esm/redux/actions/auth.js +25 -0
  129. package/dist/esm/redux/actions/auth.js.map +1 -0
  130. package/dist/esm/redux/reducers/auth.d.ts +3 -0
  131. package/dist/esm/redux/reducers/auth.js +27 -0
  132. package/dist/esm/redux/reducers/auth.js.map +1 -0
  133. package/dist/esm/services/Auth0.d.ts +18 -0
  134. package/dist/esm/services/Auth0.js +68 -0
  135. package/dist/esm/services/Auth0.js.map +1 -0
  136. package/dist/esm/services/Session.d.ts +26 -0
  137. package/dist/esm/services/Session.js +107 -0
  138. package/dist/esm/services/Session.js.map +1 -0
  139. package/package.json +1 -1
  140. package/src/components/app-wrapper/AppWrapper.tsx +4 -1
  141. package/src/components/header/ProjectDropdown.tsx +1 -20
  142. package/dist/cjs/components/config-variable-button/ConfigVariableButton.d.ts +0 -2
  143. package/dist/cjs/components/config-variable-button/ConfigVariableButton.js +0 -103
  144. package/dist/cjs/components/config-variable-button/ConfigVariableButton.js.map +0 -1
  145. package/dist/cjs/components/font-field/FontField.d.ts +0 -20
  146. package/dist/cjs/components/font-field/FontField.js +0 -47
  147. package/dist/cjs/components/font-field/FontField.js.map +0 -1
  148. package/dist/cjs/components/icon-toggle/IconToggle.d.ts +0 -16
  149. package/dist/cjs/components/icon-toggle/IconToggle.js +0 -24
  150. package/dist/cjs/components/icon-toggle/IconToggle.js.map +0 -1
  151. package/dist/cjs/components/text-area-autocomplete/TextAreaAutocomplete.d.ts +0 -18
  152. package/dist/cjs/components/text-area-autocomplete/TextAreaAutocomplete.js +0 -27
  153. package/dist/cjs/components/text-area-autocomplete/TextAreaAutocomplete.js.map +0 -1
  154. package/dist/cjs/components/variables-dropdown/VariableDropdown.d.ts +0 -12
  155. package/dist/cjs/components/variables-dropdown/VariableDropdown.js +0 -66
  156. package/dist/cjs/components/variables-dropdown/VariableDropdown.js.map +0 -1
  157. package/dist/cjs/constants/fonts.d.ts +0 -6
  158. package/dist/cjs/constants/fonts.js +0 -300
  159. package/dist/cjs/constants/fonts.js.map +0 -1
  160. package/dist/cjs/interfaces/field.d.ts +0 -0
  161. package/dist/cjs/interfaces/field.js +0 -1
  162. package/dist/cjs/interfaces/field.js.map +0 -1
  163. package/dist/cjs/utils/override.d.ts +0 -11
  164. package/dist/cjs/utils/override.js +0 -15
  165. package/dist/cjs/utils/override.js.map +0 -1
  166. package/dist/esm/components/config-variable-button/ConfigVariableButton.d.ts +0 -2
  167. package/dist/esm/components/config-variable-button/ConfigVariableButton.js +0 -46
  168. package/dist/esm/components/config-variable-button/ConfigVariableButton.js.map +0 -1
  169. package/dist/esm/components/font-field/FontField.d.ts +0 -20
  170. package/dist/esm/components/font-field/FontField.js +0 -17
  171. package/dist/esm/components/font-field/FontField.js.map +0 -1
  172. package/dist/esm/components/icon-toggle/IconToggle.d.ts +0 -16
  173. package/dist/esm/components/icon-toggle/IconToggle.js +0 -18
  174. package/dist/esm/components/icon-toggle/IconToggle.js.map +0 -1
  175. package/dist/esm/components/text-area-autocomplete/TextAreaAutocomplete.d.ts +0 -18
  176. package/dist/esm/components/text-area-autocomplete/TextAreaAutocomplete.js +0 -20
  177. package/dist/esm/components/text-area-autocomplete/TextAreaAutocomplete.js.map +0 -1
  178. package/dist/esm/components/variables-dropdown/VariableDropdown.d.ts +0 -12
  179. package/dist/esm/components/variables-dropdown/VariableDropdown.js +0 -50
  180. package/dist/esm/components/variables-dropdown/VariableDropdown.js.map +0 -1
  181. package/dist/esm/constants/fonts.d.ts +0 -6
  182. package/dist/esm/constants/fonts.js +0 -297
  183. package/dist/esm/constants/fonts.js.map +0 -1
  184. package/dist/esm/interfaces/field.d.ts +0 -0
  185. package/dist/esm/interfaces/field.js +0 -1
  186. package/dist/esm/interfaces/field.js.map +0 -1
  187. package/dist/esm/utils/override.d.ts +0 -11
  188. package/dist/esm/utils/override.js +0 -9
  189. package/dist/esm/utils/override.js.map +0 -1
  190. /package/src/components/dropdown/{Dropdown.stories.tsx → dropdown.stories.tsx} +0 -0
@@ -0,0 +1,141 @@
1
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
2
+ import ReactDOM from 'react-dom';
3
+ import Modal from '../modal/Modal';
4
+ import Button from '../button/Button';
5
+ import CheckboxField from '../checkbox-field/CheckboxField';
6
+ import Section from '../section/Section';
7
+ import { assets as copy } from '../../constants/copy';
8
+ import { replaceFilesModalEvent } from '../../utils/modal';
9
+ export const ReplaceFilesModal = () => {
10
+ const [props, setProps] = useState(null);
11
+ const [isOpen, setIsOpen] = useState(false);
12
+ const [applyToAll, setApplyToAll] = useState();
13
+ const [height, setHeight] = useState(200);
14
+ const [index, setIndex] = useState(0);
15
+ const replaceFileModalRef = useRef(null);
16
+ useEffect(() => {
17
+ if (replaceFileModalRef.current) {
18
+ const { current: { clientHeight } } = replaceFileModalRef;
19
+ setHeight(clientHeight + 40);
20
+ }
21
+ });
22
+ const onOpen = (event) => {
23
+ setProps({
24
+ ...event.detail
25
+ });
26
+ setIsOpen(true);
27
+ };
28
+ const onClose = () => {
29
+ props.onClose();
30
+ setIsOpen(false);
31
+ };
32
+ const onReplaceHandler = (curApplyToAll, curIndex, file, assetId) => {
33
+ const newIndex = curIndex + 1;
34
+ if (curApplyToAll && curIndex === 0) {
35
+ const updatedAssets = props.existedAssets.map((asset, i) => {
36
+ const updatefile = asset;
37
+ updatefile['assetId'] = props.existedAssetIds[i];
38
+ return updatefile;
39
+ });
40
+ props.onInstantUpload(updatedAssets);
41
+ setIndex(0);
42
+ setIsOpen(false);
43
+ }
44
+ else if (curApplyToAll) {
45
+ const updatedAssets = [];
46
+ for (let i = 0; i < props.existedAssets.length; i++) {
47
+ const updateFile = curIndex === 0
48
+ ? props.existedAssets[i]
49
+ : [
50
+ ...props.existedAssets.slice(0, curIndex - 1),
51
+ ...props.existedAssets.slice(curIndex)
52
+ ][i];
53
+ if (updateFile) {
54
+ updateFile['assetId'] =
55
+ curIndex === 0
56
+ ? props.existedAssetIds[i]
57
+ : [
58
+ ...props.existedAssetIds.slice(0, curIndex - 1),
59
+ ...props.existedAssetIds.slice(curIndex)
60
+ ][i];
61
+ updatedAssets.push(updateFile);
62
+ props.onInstantUpload(updatedAssets);
63
+ setIndex(0);
64
+ onClose();
65
+ }
66
+ }
67
+ }
68
+ else {
69
+ if (newIndex === props.existedAssets.length) {
70
+ setIndex(0);
71
+ onClose();
72
+ }
73
+ else {
74
+ setIndex(newIndex);
75
+ }
76
+ const updateFile = file;
77
+ updateFile['assetId'] = assetId;
78
+ props.onUpload([updateFile]);
79
+ }
80
+ };
81
+ const onAsNewHandler = (curApplyToAll, curIndex, file) => {
82
+ const newIndex = curIndex + 1;
83
+ if (curApplyToAll) {
84
+ props.onUpload(curIndex === 0 ? props.existedAssets : props.existedAssets.slice(curIndex));
85
+ setIndex(0);
86
+ onClose();
87
+ }
88
+ else {
89
+ if (newIndex === props.existedAssets.length) {
90
+ setIndex(0);
91
+ onClose();
92
+ }
93
+ else {
94
+ setIndex(newIndex);
95
+ }
96
+ props.onUpload([file]);
97
+ }
98
+ };
99
+ const onApplyToAllHandler = (e) => {
100
+ setApplyToAll(e);
101
+ props.onApplyToAll(e);
102
+ };
103
+ const onReplace = useCallback((curApplyToAll, curIndex, file, assetId) => onReplaceHandler(curApplyToAll, curIndex, file, assetId), [isOpen]);
104
+ const onApplyToAll = useCallback((e) => onApplyToAllHandler(e), [isOpen]);
105
+ const onAsNew = useCallback((curApplyToAll, curIndex, file) => onAsNewHandler(curApplyToAll, curIndex, file), [isOpen]);
106
+ useEffect(() => {
107
+ window.addEventListener(replaceFilesModalEvent, onOpen);
108
+ return () => {
109
+ window.removeEventListener(replaceFilesModalEvent, onOpen);
110
+ };
111
+ }, []);
112
+ const modal = () => {
113
+ if (isOpen) {
114
+ const file = props.existedAssets[index];
115
+ const assetId = props.existedAssetIds[index];
116
+ const name = file.name.slice(0, file.name.lastIndexOf('.'));
117
+ return (React.createElement(Modal, { onRequestClose: onClose, wrapperStyle: {
118
+ left: '0px',
119
+ width: '100%'
120
+ }, style: {
121
+ width: '400px',
122
+ height: `${height}px`,
123
+ top: 'calc(50% - 150px)',
124
+ left: 'calc((100% - 400px) / 2)'
125
+ }, isOpen: true },
126
+ React.createElement(Section, null,
127
+ React.createElement("div", { className: 'replace-files-modal', ref: replaceFileModalRef },
128
+ React.createElement("p", null, copy.uploads.title.replace('[name]', name)),
129
+ React.createElement("div", { className: 'replace-files-buttons' },
130
+ React.createElement("div", { className: 'checkbox' },
131
+ React.createElement(CheckboxField, { label: copy.uploads.applyAll, value: applyToAll, onChange: onApplyToAll })),
132
+ React.createElement("div", { className: 'buttons' },
133
+ React.createElement(Button, { onClick: () => onAsNew(applyToAll, index, file), size: 'large', style: 'bold', color: 'primary' }, copy.uploads.keepBoth),
134
+ React.createElement(Button, { onClick: () => onReplace(applyToAll, index, file, assetId), size: 'large', style: 'bold', color: 'primary' }, copy.uploads.replace),
135
+ React.createElement(Button, { onClick: onClose, size: 'large', style: 'bold', color: 'default' }, copy.uploads.cancelButton)))))));
136
+ }
137
+ };
138
+ const PortalContextComponent = () => ReactDOM.createPortal(modal(), document.querySelector('#react-root'));
139
+ return React.createElement(PortalContextComponent, null);
140
+ };
141
+ //# sourceMappingURL=ReplaceFilesModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplaceFilesModal.js","sourceRoot":"","sources":["../../../../src/components/replace-files-modal/ReplaceFilesModal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { IIdentity } from '../../services/Auth0';
2
+ export declare const AUTH_CACHE_KEY: string;
3
+ export declare const login: (auth: IIdentity) => any;
4
+ export declare const clearCachedAuth: () => any;
5
+ declare const actions: {
6
+ LOGIN: string;
7
+ CLEAR: string;
8
+ };
9
+ export default actions;
@@ -0,0 +1,25 @@
1
+ export const AUTH_CACHE_KEY = 'imposium_hub_creds';
2
+ export const login = (auth) => {
3
+ try {
4
+ localStorage.setItem(AUTH_CACHE_KEY, JSON.stringify(auth));
5
+ }
6
+ catch (e) {
7
+ console.warn('Failed to cache auth creds...');
8
+ }
9
+ return { type: actions.LOGIN, auth };
10
+ };
11
+ export const clearCachedAuth = () => {
12
+ try {
13
+ localStorage.removeItem(AUTH_CACHE_KEY);
14
+ }
15
+ catch (e) {
16
+ console.warn('Failed to remove cached creds');
17
+ }
18
+ return { type: actions.CLEAR };
19
+ };
20
+ const actions = {
21
+ LOGIN: 'auth/LOGIN',
22
+ CLEAR: 'auth/CLEAR'
23
+ };
24
+ export default actions;
25
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/redux/actions/auth.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAW,oBAAoB,CAAC;AAE3D,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAe,EAAO,EAAE;IAC1C,IAAI,CAAC;QACD,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAQ,EAAE;IACrC,IAAI,CAAC;QACD,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG;IACZ,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;CACtB,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { IIdentity } from '../../services/Auth0';
2
+ declare const auth: (state: IIdentity, action: any) => any;
3
+ export default auth;
@@ -0,0 +1,27 @@
1
+ import actions, { AUTH_CACHE_KEY } from '../actions/auth';
2
+ import AuthService from '../../services/Auth0';
3
+ let initialState = null;
4
+ try {
5
+ const cachedAuth = JSON.parse(localStorage.getItem(AUTH_CACHE_KEY));
6
+ if (cachedAuth) {
7
+ const { idTokenPayload: { exp } } = cachedAuth;
8
+ if (AuthService.checkExpiry(exp)) {
9
+ initialState = cachedAuth;
10
+ }
11
+ }
12
+ }
13
+ catch (e) {
14
+ console.warn('Cached credentials were malformed or missing, redirected to login.');
15
+ }
16
+ const auth = (state = initialState, action) => {
17
+ switch (action.type) {
18
+ case actions.LOGIN:
19
+ return { ...action.auth };
20
+ case actions.CLEAR:
21
+ return null;
22
+ default:
23
+ return state;
24
+ }
25
+ };
26
+ export default auth;
27
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/redux/reducers/auth.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,WAA0B,MAAM,sBAAsB,CAAC;AAE9D,IAAI,YAAY,GAAc,IAAI,CAAC;AAEnC,IAAI,CAAC;IACD,MAAM,UAAU,GAAc,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAE/E,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,EACF,cAAc,EAAE,EAAE,GAAG,EAAE,EAC1B,GAAG,UAAU,CAAC;QAEf,IAAI,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,YAAY,GAAG,UAAU,CAAC;QAC9B,CAAC;IACL,CAAC;AACL,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACT,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,YAAY,EAAE,MAAM,EAAE,EAAE;IAC1C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO,CAAC,KAAK;YACd,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,OAAO,CAAC,KAAK;YACd,OAAO,IAAI,CAAC;QAChB;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface IIdentity {
2
+ accessToken: string;
3
+ expiry: number;
4
+ expiresIn: number;
5
+ idToken: string;
6
+ tokenType: string;
7
+ idTokenPayload: any;
8
+ }
9
+ export default class AuthService {
10
+ private static readonly IMPOSIUM_APP_DEFAULTS;
11
+ private static auth0Client;
12
+ static bindToClient: (clientID: string, domain: string) => void;
13
+ static login: () => void;
14
+ static logout: () => void;
15
+ static checkExpiry: (expiry: number) => boolean;
16
+ static parseIdFromHash: (hash: string) => Promise<IIdentity>;
17
+ static checkSession: () => Promise<IIdentity | Error>;
18
+ }
@@ -0,0 +1,68 @@
1
+ import * as auth0 from 'auth0-js';
2
+ export default class AuthService {
3
+ static IMPOSIUM_APP_DEFAULTS = {
4
+ scope: 'openid',
5
+ audience: 'https://api.4cinsights.io/',
6
+ responseType: 'token id_token',
7
+ redirectUri: `${window.location.origin}/auth`
8
+ };
9
+ // Auth0 JS client
10
+ static auth0Client;
11
+ /*
12
+ Initialize the auth0 web client with client ID for a given app-wrapper
13
+ */
14
+ static bindToClient = (clientID, domain) => {
15
+ AuthService.auth0Client = new auth0.WebAuth({
16
+ clientID,
17
+ domain,
18
+ ...AuthService.IMPOSIUM_APP_DEFAULTS
19
+ });
20
+ };
21
+ /*
22
+ redirect to auth0 for login
23
+ */
24
+ static login = () => {
25
+ AuthService.auth0Client.authorize();
26
+ };
27
+ /*
28
+ Re-direct to auth0 to cancel session & instruct auth0 to redirect back to login
29
+ */
30
+ static logout = () => {
31
+ AuthService.auth0Client.logout({ returnTo: `${window.location.origin}/auth` });
32
+ };
33
+ /*
34
+ Validate auth0 expiry timestamp
35
+ */
36
+ static checkExpiry = (expiry) => expiry > Date.now().valueOf() / 1000;
37
+ /*
38
+ Parse out identity from hash
39
+ */
40
+ static parseIdFromHash = (hash) => {
41
+ return new Promise((resolve, reject) => {
42
+ AuthService.auth0Client.parseHash({ options: hash }, (e, id) => {
43
+ if (!e) {
44
+ resolve(id);
45
+ }
46
+ else {
47
+ reject(e);
48
+ }
49
+ });
50
+ });
51
+ };
52
+ /*
53
+ Defer to auth0 web servers to check if users session is valid
54
+ */
55
+ static checkSession = () => {
56
+ return new Promise((resolve, reject) => {
57
+ AuthService.auth0Client.checkSession({}, (e, id) => {
58
+ if (!e) {
59
+ resolve(id);
60
+ }
61
+ else {
62
+ reject(e);
63
+ }
64
+ });
65
+ });
66
+ };
67
+ }
68
+ //# sourceMappingURL=Auth0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Auth0.js","sourceRoot":"","sources":["../../../src/services/Auth0.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAWlC,MAAM,CAAC,OAAO,OAAO,WAAW;IACpB,MAAM,CAAU,qBAAqB,GAAQ;QACjD,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,4BAA4B;QACtC,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,OAAO;KAChD,CAAC;IAEF,kBAAkB;IACV,MAAM,CAAC,WAAW,CAAgB;IAE1C;;OAEG;IACI,MAAM,CAAC,YAAY,GAAG,CAAC,QAAgB,EAAE,MAAc,EAAQ,EAAE;QACpE,WAAW,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;YACxC,QAAQ;YACR,MAAM;YACN,GAAG,WAAW,CAAC,qBAAqB;SACvC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,KAAK,GAAG,GAAS,EAAE;QAC7B,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;IACxC,CAAC,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,MAAM,GAAG,GAAS,EAAE;QAC9B,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,WAAW,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IAE9F;;OAEG;IACI,MAAM,CAAC,eAAe,GAAG,CAAC,IAAY,EAAsB,EAAE;QACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAQ,EAAE,EAAa,EAAE,EAAE;gBAC7E,IAAI,CAAC,CAAC,EAAE,CAAC;oBACL,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,CAAC;gBACd,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,YAAY,GAAG,GAA+B,EAAE;QAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAQ,EAAE,EAAa,EAAE,EAAE;gBACjE,IAAI,CAAC,CAAC,EAAE,CAAC;oBACL,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,CAAC;gBACd,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { IIdentity } from './Auth0';
2
+ export interface IHubSession {
3
+ sub: string;
4
+ organization_id: string;
5
+ story_id: string;
6
+ }
7
+ export default class SessionService {
8
+ private static readonly LOGIN_STORY_ID_CACHE;
9
+ private static readonly LOGIN_ORG_ID_CACHE;
10
+ private static readonly SESSION_COOKIE_NAME;
11
+ private static readonly FRESH_COOKIE;
12
+ static getAccessData: (idToken: string, baseUrl?: string, getTotalRenders?: boolean, accountId?: string) => Promise<any[]>;
13
+ static getSession: () => IHubSession;
14
+ static removeSession: () => void;
15
+ static buildFreshSession: (freshIdentity: IIdentity, orgId?: string, storyId?: string) => void;
16
+ static storeSession: (values: any, auth0Expiry: number) => void;
17
+ static cacheOrgId: (organizationId: string) => void;
18
+ static clearCachedOrgId: () => void;
19
+ static getCachedOrgId: () => string;
20
+ static cacheStoryId: (storyId: string) => void;
21
+ static clearCachedStoryId: () => void;
22
+ static getCachedStoryId: () => string;
23
+ static updateSession: (values: any, auth0Expiry: number) => void;
24
+ private static scrapeDomain;
25
+ private static determineAccessUrl;
26
+ }
@@ -0,0 +1,107 @@
1
+ import * as Cookies from 'js-cookie';
2
+ import axios from 'axios';
3
+ export default class SessionService {
4
+ static LOGIN_STORY_ID_CACHE = 'imp_hub_last_story_id';
5
+ static LOGIN_ORG_ID_CACHE = 'imp_hub_last_org_id';
6
+ static SESSION_COOKIE_NAME = 'auth_state';
7
+ static FRESH_COOKIE = {
8
+ sub: '',
9
+ organization_id: '',
10
+ story_id: ''
11
+ };
12
+ /*
13
+ Get list of accessible services with themes from Imposium API
14
+ */
15
+ static getAccessData = (idToken, baseUrl, getTotalRenders = false, accountId) => {
16
+ return new Promise((resolve, reject) => {
17
+ let accessUrl = baseUrl ? `${baseUrl}/access` : SessionService.determineAccessUrl();
18
+ const headers = { Authorization: `Bearer ${idToken}` };
19
+ if (getTotalRenders) {
20
+ accessUrl += '?include_total_renders=true';
21
+ }
22
+ if (accountId && accountId !== 'undefined') {
23
+ headers['X-Imposium-Account-Id'] = accountId;
24
+ }
25
+ axios
26
+ .get(accessUrl, { headers })
27
+ .then((res) => {
28
+ resolve(res.data ? res.data : []);
29
+ })
30
+ .catch((e) => {
31
+ reject(e);
32
+ });
33
+ });
34
+ };
35
+ static getSession = () => Cookies.getJSON(SessionService.SESSION_COOKIE_NAME);
36
+ static removeSession = () => {
37
+ const domain = SessionService.scrapeDomain();
38
+ Cookies.remove(SessionService.SESSION_COOKIE_NAME, { domain });
39
+ SessionService.clearCachedOrgId();
40
+ SessionService.clearCachedStoryId();
41
+ };
42
+ static buildFreshSession = (freshIdentity, orgId = null, storyId = null) => {
43
+ const { idTokenPayload: { sub, exp } } = freshIdentity;
44
+ const freshSession = {
45
+ sub
46
+ };
47
+ if (orgId) {
48
+ freshSession.organization_id = orgId;
49
+ }
50
+ if (storyId) {
51
+ freshSession.story_id = storyId;
52
+ }
53
+ SessionService.storeSession(freshSession, exp);
54
+ };
55
+ static storeSession = (values, auth0Expiry) => {
56
+ const cookieData = { ...SessionService.FRESH_COOKIE, ...values };
57
+ const domain = SessionService.scrapeDomain();
58
+ const expiry = new Date(auth0Expiry * 1000);
59
+ Cookies.set(SessionService.SESSION_COOKIE_NAME, cookieData, { domain, expires: expiry });
60
+ };
61
+ static cacheOrgId = (organizationId) => {
62
+ localStorage.setItem(SessionService.LOGIN_ORG_ID_CACHE, organizationId);
63
+ };
64
+ static clearCachedOrgId = () => {
65
+ localStorage.removeItem(SessionService.LOGIN_ORG_ID_CACHE);
66
+ };
67
+ static getCachedOrgId = () => {
68
+ return localStorage.getItem(SessionService.LOGIN_ORG_ID_CACHE);
69
+ };
70
+ static cacheStoryId = (storyId) => {
71
+ localStorage.setItem(SessionService.LOGIN_STORY_ID_CACHE, storyId);
72
+ };
73
+ static clearCachedStoryId = () => {
74
+ localStorage.removeItem(SessionService.LOGIN_STORY_ID_CACHE);
75
+ };
76
+ static getCachedStoryId = () => {
77
+ return localStorage.getItem(SessionService.LOGIN_STORY_ID_CACHE);
78
+ };
79
+ static updateSession = (values, auth0Expiry) => {
80
+ const prevCookieData = SessionService.getSession();
81
+ const nextCookieData = { ...prevCookieData, ...values };
82
+ SessionService.storeSession(nextCookieData, auth0Expiry);
83
+ };
84
+ /*
85
+ Determine which domain to assign cookie to
86
+ */
87
+ static scrapeDomain = () => {
88
+ const domainParts = window.location.host.split('.').reverse();
89
+ return domainParts.length > 2 ? `.${domainParts[1]}.${domainParts[0].split(':')[0]}` : null;
90
+ };
91
+ /*
92
+ Figure out which access endpoint to hit based on env
93
+ */
94
+ static determineAccessUrl = () => {
95
+ const { location: { hostname, host } } = window;
96
+ if (hostname === 'localhost') {
97
+ return 'https://api/access';
98
+ }
99
+ else if (host.includes('.staging.')) {
100
+ return 'https://api.staging.imposium.com/access';
101
+ }
102
+ else {
103
+ return 'https://api.imposium.com/access';
104
+ }
105
+ };
106
+ }
107
+ //# sourceMappingURL=Session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Session.js","sourceRoot":"","sources":["../../../src/services/Session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imposium-hub/components",
3
- "version": "2.13.5",
3
+ "version": "2.13.6",
4
4
  "description": "React & Typescript component / asset library for Imposium front-ends",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -240,7 +240,10 @@ export const AppWrapper: React.FC<IAppWrapperProps> = (props) => {
240
240
  // If we're authenticated, get the access token, pull the access data, and propagate back to the parent component
241
241
  if (isAuthenticated) {
242
242
  try {
243
- await getAccessTokenSilently();
243
+ const token = await getAccessTokenSilently();
244
+ if (token !== auth0Token) {
245
+ setAuth0Token(token);
246
+ }
244
247
  } catch (e) {
245
248
  // Trigger a logout if we can't get the access token
246
249
  onLogout();
@@ -1,7 +1,6 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import ImposiumDropdown from '../dropdown/Dropdown';
3
3
  import StoryTableNameFilter from '../assets/StoryTableNameFilter';
4
- import { StoryTableTotalRendersCell } from '../assets/StoryTableTotalRendersCell';
5
4
  import React from 'react';
6
5
  import AssetsTableDateCell from '../assets/AssetsTableDateCell';
7
6
  import DataTable from '../data-table/DataTable';
@@ -26,7 +25,6 @@ export const ProjectDropdown = (props: IProjectDropdownProps) => {
26
25
  const [storyFilter, setStoryFilter] = useState({
27
26
  name: ''
28
27
  });
29
- const [totalRendersLoading, setTotalRendersLoading] = useState(false);
30
28
  const [order] = useState('date_modified');
31
29
  const [orderDirection] = useState('desc');
32
30
 
@@ -36,10 +34,8 @@ export const ProjectDropdown = (props: IProjectDropdownProps) => {
36
34
 
37
35
  useEffect(() => {
38
36
  if (show) {
39
- setTotalRendersLoading(true);
40
- api.getAccessData(true).then((data) => {
37
+ api.getAccessData(false).then((data) => {
41
38
  setAccessData(data);
42
- setTotalRendersLoading(false);
43
39
  });
44
40
  }
45
41
  }, [show]);
@@ -66,21 +62,6 @@ export const ProjectDropdown = (props: IProjectDropdownProps) => {
66
62
  ),
67
63
  disableSortBy: false
68
64
  },
69
- {
70
- accessor: 'total_renders',
71
- Header: 'Total Renders',
72
- width: 60,
73
- minWidth: 60,
74
- maxWidth: 60,
75
- disableSortBy: false,
76
- Cell: (cell: any) => (
77
- <StoryTableTotalRendersCell
78
- loading={totalRendersLoading}
79
- cell={cell}
80
- date_created={false}
81
- />
82
- )
83
- },
84
65
  {
85
66
  accessor: 'last_modified_by',
86
67
  Header: 'Last Modified By',
@@ -1,2 +0,0 @@
1
- export declare const getConfigVariableButton: any;
2
- export declare const fieldLabel: (labelText: any, propKey: any, showCopyPropIds: any, type: string, inventory: any, setOverride: any, onClose: any, activeOverride: any, removeOverride: any, icon?: any) => any;
@@ -1,103 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __read = (this && this.__read) || function (o, n) {
36
- var m = typeof Symbol === "function" && o[Symbol.iterator];
37
- if (!m) return o;
38
- var i = m.call(o), r, ar = [], e;
39
- try {
40
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
41
- }
42
- catch (error) { e = { error: error }; }
43
- finally {
44
- try {
45
- if (r && !r.done && (m = i["return"])) m.call(i);
46
- }
47
- finally { if (e) throw e.error; }
48
- }
49
- return ar;
50
- };
51
- var __importDefault = (this && this.__importDefault) || function (mod) {
52
- return (mod && mod.__esModule) ? mod : { "default": mod };
53
- };
54
- Object.defineProperty(exports, "__esModule", { value: true });
55
- exports.fieldLabel = exports.getConfigVariableButton = void 0;
56
- var react_1 = __importStar(require("react"));
57
- var icons_1 = require("../../constants/icons");
58
- var Button_1 = __importDefault(require("../button/Button"));
59
- var Dropdown_1 = __importDefault(require("../dropdown/Dropdown"));
60
- var moize_1 = __importDefault(require("moize"));
61
- var VariableDropdown_1 = __importDefault(require("../variables-dropdown/VariableDropdown"));
62
- var ConfigVariableButton = function (_a) {
63
- var type = _a.type, inventory = _a.inventory, setOverride = _a.setOverride, onClose = _a.onClose, activeOverride = _a.activeOverride, removeOverride = _a.removeOverride, icon = _a.icon;
64
- var _b = __read((0, react_1.useState)(false), 2), show = _b[0], setShow = _b[1];
65
- var variablesButtonRef = (0, react_1.useRef)();
66
- var close = function () {
67
- setShow(!show);
68
- if (onClose) {
69
- onClose(!show);
70
- }
71
- };
72
- var setOverrideHandler = function (o) {
73
- setOverride(o);
74
- close();
75
- };
76
- var removeOverrideHandler = function () {
77
- removeOverride();
78
- close();
79
- };
80
- return (react_1.default.createElement(react_1.default.Fragment, null,
81
- react_1.default.createElement(Button_1.default, { tooltip: 'Configure Variables', customClass: icon ? 'icon-toggle' : '', onClick: function () {
82
- close();
83
- }, buttonRef: variablesButtonRef, size: 'small', style: 'subtle' }, icons_1.ICON_BRACKET_CURLY),
84
- react_1.default.createElement(Dropdown_1.default, { key: 'variables-dropdown', position: 'bottomleft', show: show, toggleRef: variablesButtonRef, customClass: 'variables', onOutsideClick: function () { return close(); } },
85
- react_1.default.createElement(VariableDropdown_1.default, { returnVariables: show, type: type, inventory: inventory, setOverride: setOverrideHandler, removeOverride: removeOverrideHandler, activeOverride: activeOverride }))));
86
- };
87
- var mGetConfigVariableButton = function (enabled, type, inventory, setOverride, onClose, icon, activeOverride, removeOverride) {
88
- if (enabled || activeOverride !== undefined) {
89
- return (react_1.default.createElement(ConfigVariableButton, { type: type, inventory: inventory, setOverride: function (o) { return setOverride(o); }, onClose: function (o) { return onClose(o); }, icon: icon, activeOverride: activeOverride, removeOverride: removeOverride }));
90
- }
91
- else {
92
- return null;
93
- }
94
- };
95
- exports.getConfigVariableButton = (0, moize_1.default)(mGetConfigVariableButton);
96
- var fieldLabel = function (labelText, propKey, showCopyPropIds, type, inventory, setOverride, onClose, activeOverride, removeOverride, icon) {
97
- var label = propKey ? (react_1.default.createElement("span", null,
98
- labelText,
99
- (0, exports.getConfigVariableButton)(showCopyPropIds, type, inventory, function (o) { return setOverride(o); }, function (o) { return onClose(o); }, icon, activeOverride, removeOverride))) : (labelText);
100
- return label;
101
- };
102
- exports.fieldLabel = fieldLabel;
103
- //# sourceMappingURL=ConfigVariableButton.js.map