@reltio/components 1.4.1990 → 1.4.1992

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.
@@ -16,9 +16,7 @@ type Props = {
16
16
  max: number;
17
17
  offset: number;
18
18
  }) => Promise<Lookups>;
19
- lookups: {
20
- [key: string]: LookupValue[];
21
- };
19
+ lookups: Lookups;
22
20
  resolveLookups: (lookupType: string, codeValues: LookupValue[]) => void;
23
21
  fullWidth?: boolean;
24
22
  disabled?: boolean;
@@ -203,7 +203,8 @@ var DependentLookupEditor = function (_a) {
203
203
  }).markAsTouched;
204
204
  return (react_1.default.createElement(ReactSelect_1.ReactSelect, __assign({}, otherProps, { isMulti: multiple, classes: styles, menuPortalTarget: document.body, menuPlacement: "auto", TextFieldProps: __assign(__assign({}, TextFieldProps), { ref: inputRef, disabled: (TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.disabled) || disabled }), inputRef: inputRef, innerRef: selectRef, styles: {
205
205
  menuPortal: function (base) { return (__assign(__assign({}, base), { zIndex: 1300 })); },
206
- container: function (base) { return (__assign(__assign({}, base), (fullWidth ? { width: '100%' } : {}))); }
206
+ container: function (base) { return (__assign(__assign({}, base), (fullWidth ? { width: '100%' } : {}))); },
207
+ input: function (base) { return (__assign(__assign({}, base), { visibility: 'visible' })); }
207
208
  }, noOptionsMessage: function () {
208
209
  return optionsAreLoading && !showMoreButton ? ui_i18n_1.default.text('Loading...') : ui_i18n_1.default.text('No results found');
209
210
  }, components: SelectComponents, isClearable: true, isSearchable: true, controlShouldRenderValue: multiple, inputValue: inputValue, filterOption: multiple ? undefined : ramda_1.T, onInputChange: handleInputChange, loadingMessage: function () { return ui_i18n_1.default.text('Loading...'); }, isLoading: !inputValue && isLoadingDefaultOptions, hideSelectedOptions: false, placeholder: placeholder || '', isDisabled: disabled, options: displayedOptions, getOptionValue: (0, ramda_1.either)((0, ramda_1.prop)('value'), (0, ramda_1.prop)('lookupCode')), getOptionLabel: helpers_1.getOptionLabel, onChange: handleChange, onFocus: multiple ? undefined : handleFocus, value: (0, ramda_1.defaultTo)(multiple ? [] : null, value), menuListFooter: showMoreButton && react_1.default.createElement(ReactSelectLoadMoreButton_1.ReactSelectLoadMoreButton, { loading: optionsAreLoading, onClick: loadMoreOptions }) })));
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var react_1 = __importDefault(require("react"));
54
+ var DependentLookupEditor_1 = require("./DependentLookupEditor");
55
+ var react_2 = require("@testing-library/react");
56
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
57
+ var onChange = jest.fn();
58
+ var getLookups = jest.fn().mockResolvedValue({
59
+ AR: {
60
+ displayName: 'Argentina'
61
+ },
62
+ BG: {
63
+ displayName: 'Bulgaria'
64
+ },
65
+ CN: {
66
+ displayName: 'China'
67
+ }
68
+ });
69
+ var resolveLookups = jest.fn();
70
+ var defaultProps = {
71
+ value: {
72
+ value: 'Portugal',
73
+ lookupCode: 'PT'
74
+ },
75
+ lookups: {
76
+ COUNTRY_CD: {
77
+ PT: {
78
+ displayName: 'Portugal'
79
+ }
80
+ }
81
+ },
82
+ lookupCode: 'COUNTRY_CD',
83
+ error: false,
84
+ parents: [],
85
+ disabled: false,
86
+ placeholder: '',
87
+ TextFieldProps: {},
88
+ onChange: onChange,
89
+ getLookups: getLookups,
90
+ resolveLookups: resolveLookups
91
+ };
92
+ var setUp = function (props) {
93
+ if (props === void 0) { props = defaultProps; }
94
+ var user = user_event_1.default.setup();
95
+ return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(DependentLookupEditor_1.DependentLookupEditor, __assign({}, props))));
96
+ };
97
+ describe('DependentLookupEditor tests', function () {
98
+ afterEach(function () {
99
+ jest.clearAllMocks();
100
+ });
101
+ it('should render components correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
102
+ var user;
103
+ return __generator(this, function (_a) {
104
+ switch (_a.label) {
105
+ case 0:
106
+ user = setUp().user;
107
+ expect(react_2.screen.getByRole('combobox')).toHaveValue('Portugal (PT)');
108
+ return [4 /*yield*/, user.click(react_2.screen.getByRole('combobox'))];
109
+ case 1:
110
+ _a.sent();
111
+ expect(react_2.screen.getByText('Argentina (AR)')).toBeInTheDocument();
112
+ expect(react_2.screen.getByText('China (CN)')).toBeInTheDocument();
113
+ expect(react_2.screen.getByText('Bulgaria (BG)')).toBeInTheDocument();
114
+ return [2 /*return*/];
115
+ }
116
+ });
117
+ }); });
118
+ it('should show input value when select is disabled', function () { return __awaiter(void 0, void 0, void 0, function () {
119
+ return __generator(this, function (_a) {
120
+ switch (_a.label) {
121
+ case 0:
122
+ setUp(__assign(__assign({}, defaultProps), { disabled: true }));
123
+ return [4 /*yield*/, (0, react_2.act)(function () { return __awaiter(void 0, void 0, void 0, function () {
124
+ return __generator(this, function (_a) {
125
+ switch (_a.label) {
126
+ case 0: return [4 /*yield*/, Promise.resolve()];
127
+ case 1:
128
+ _a.sent();
129
+ return [2 /*return*/];
130
+ }
131
+ });
132
+ }); })];
133
+ case 1:
134
+ _a.sent();
135
+ expect(react_2.screen.getByRole('combobox')).toHaveValue('Portugal (PT)');
136
+ expect(react_2.screen.getByRole('combobox')).toHaveAttribute('disabled');
137
+ expect(react_2.screen.getByRole('combobox')).toBeVisible();
138
+ return [2 /*return*/];
139
+ }
140
+ });
141
+ }); });
142
+ });
package/cjs/index.d.ts CHANGED
@@ -284,7 +284,7 @@ export * from './types';
284
284
  export * from './constants';
285
285
  export { TestPerspectivesSettingsProvider } from './test-utils/TestPerspectiveSettingsProvider';
286
286
  export { TestStylesProvider } from './test-utils/TestStylesProvider';
287
- export { awaitMockPromises, deepFreeze, delayPromise, getMuiIconByName, getMuiIconsByName, mockBasicTableSizing, fixClicksOnResizablePanes, mockElementSizes, rerenderWrapper, FakeMouseEvent } from './test-utils';
287
+ export { awaitMockPromises, deepFreeze, delayPromise, getMuiIconByName, getMuiIconsByName, mockBasicTableSizing, fixClicksOnResizablePanes, mockElementSizes, rerenderWrapper, FakeMouseEvent, mockComputedStyles } from './test-utils';
288
288
  export * from './features/activity-log';
289
289
  export * from './features/crosswalks';
290
290
  export * from './features/graph';
package/cjs/index.js CHANGED
@@ -20,7 +20,7 @@ exports.MultipleInput = exports.ModeSwitcherSelect = exports.ModeSwitcher = expo
20
20
  exports.PopupBoundariesContext = exports.HistoryDiffContext = exports.AsyncMountContext = exports.MdmModuleProvider = exports.withTableContext = exports.withFilterAtBottom = exports.withPercents = exports.withContext = exports.withDateRangeSelector = exports.withDragHandle = exports.withAsyncMount = exports.withTooltip = exports.MetadataTypesSelector = exports.DateRangeSelector = exports.UpSetChart = exports.GaugeChart = exports.RelationEditor = exports.ReltioMap = exports.Marginator = exports.LightArrowTooltip = exports.ScrollableTabs = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = exports.SidePanelEmptyState = exports.SideButtonsPanel = exports.SelectorWithOnlyOptionAutoSelect = exports.SelectionPopup = exports.WhiteSearchInput = exports.SearchInput = exports.ProfileResizablePanes = exports.ResizablePanes = exports.ReltioGridLayout = exports.RCTree = exports.reactSortableTreeHelpers = exports.ReactSortableTree = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = exports.PotentialMatchReviewCard = exports.PopupWithArrow = exports.Popper = void 0;
21
21
  exports.useReloadData = exports.ReloadDataProvider = exports.useAttributeValueConfigPermissions = exports.ConfigPermissionsContextProvider = exports.ConfigPermissionsContext = exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.EntityContext = exports.RelatedObjectUrisContext = exports.WorkflowTasksContext = exports.useEntityLoadingIndication = exports.EntityLoadingIndicationProvider = exports.EntityMarkerContext = exports.useAttributeExpanded = exports.ExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.usePerspectivesSettings = exports.PerspectivesSettingsContext = exports.PivotingAttributeContext = exports.UsersContext = exports.InitialCollaborationContextValue = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockImageGalleryDialogContext = void 0;
22
22
  exports.useMarkers = exports.useMaskedAttribute = exports.useKeyboardNavigation = exports.useDynamicRowCellHeight = exports.useClickableStyle = exports.BasicTableCellRenderer = exports.useBasicTableCellRenderer = exports.useHiddenAttributes = exports.useSavedSearchesRequest = exports.useRequestDCRReview = exports.useAutoFocus = exports.useExpandInvalidRelations = exports.useLayoutResetter = exports.useIsMountedRef = exports.useSnackbar = exports.useSavedStateForEntityType = exports.useReadableSearchState = exports.useEditableConnection = exports.useCustomScripts = exports.useMarkAsNotMatchRequest = exports.useMergeAllRequest = exports.usePagingSimulator = exports.useMatchesLoader = exports.useConfigPermissions = exports.useWhyDidYouUpdate = exports.useUsers = exports.useSavedState = exports.useSafePromise = exports.useRunOnceAfterValueInitialization = exports.useRelationsLoader = exports.useRelationTypeSelector = exports.usePrevious = exports.useDidUpdateEffect = exports.useCommentsEntitiesMap = exports.useCollaboration = exports.useAsyncMount = exports.useAPI = exports.useActions = exports.useMatchesColumnsData = exports.useScrollToAttributeError = exports.ProfileTablesContext = exports.HiddenAttributesContext = exports.BasicTableContext = exports.BasicTableRowCollapseContext = exports.useDeleteUnmaskedAttributeForRelation = exports.useUnmaskedAttributeValue = exports.useUnmaskAttributeValue = exports.useMaskAttributeValue = exports.MaskedAttributesProvider = exports.SegmentationContext = void 0;
23
- exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.delayPromise = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.getAttributeSelectorItems = exports.mergeClasses = exports.isControlOrCommandPressed = exports.getValue = exports.getChecked = exports.showErrorMessage = exports.showDefaultErrorMessage = exports.enrichDataWithPercents = exports.defaultRenderRowCell = exports.defaultGetRowCellHeight = exports.columnFilterToMdmFilter = exports.buildColumnsSizeById = exports.buildColumnsFilter = exports.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = void 0;
23
+ exports.mockComputedStyles = exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.delayPromise = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.getAttributeSelectorItems = exports.mergeClasses = exports.isControlOrCommandPressed = exports.getValue = exports.getChecked = exports.showErrorMessage = exports.showDefaultErrorMessage = exports.enrichDataWithPercents = exports.defaultRenderRowCell = exports.defaultGetRowCellHeight = exports.columnFilterToMdmFilter = exports.buildColumnsSizeById = exports.buildColumnsFilter = exports.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = void 0;
24
24
  // components
25
25
  var ActionButton_1 = require("./ActionButton");
26
26
  Object.defineProperty(exports, "ActionButton", { enumerable: true, get: function () { return ActionButton_1.ActionButton; } });
@@ -639,6 +639,7 @@ Object.defineProperty(exports, "fixClicksOnResizablePanes", { enumerable: true,
639
639
  Object.defineProperty(exports, "mockElementSizes", { enumerable: true, get: function () { return test_utils_1.mockElementSizes; } });
640
640
  Object.defineProperty(exports, "rerenderWrapper", { enumerable: true, get: function () { return test_utils_1.rerenderWrapper; } });
641
641
  Object.defineProperty(exports, "FakeMouseEvent", { enumerable: true, get: function () { return test_utils_1.FakeMouseEvent; } });
642
+ Object.defineProperty(exports, "mockComputedStyles", { enumerable: true, get: function () { return test_utils_1.mockComputedStyles; } });
642
643
  // features / activity-log
643
644
  __exportStar(require("./features/activity-log"), exports);
644
645
  // features / crosswalks
@@ -11,6 +11,7 @@ export declare const mockElementSizes: (element?: HTMLElement, defaults?: {
11
11
  mock: () => void;
12
12
  unmock: () => void;
13
13
  };
14
+ export declare const mockComputedStyles: (styles?: {}) => () => void;
14
15
  export declare const mockBasicTableSizing: ({ width, height }?: {
15
16
  width?: number;
16
17
  height?: number;
@@ -14,6 +14,17 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
17
28
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
29
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
30
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -62,7 +73,7 @@ var __rest = (this && this.__rest) || function (s, e) {
62
73
  return t;
63
74
  };
64
75
  Object.defineProperty(exports, "__esModule", { value: true });
65
- exports.FakeMouseEvent = exports.getMuiIconsByName = exports.getMuiIconByName = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.mockElementSizes = exports.rerenderWrapper = exports.deepFreeze = exports.awaitMockPromises = exports.delayPromise = void 0;
76
+ exports.FakeMouseEvent = exports.getMuiIconsByName = exports.getMuiIconByName = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.mockComputedStyles = exports.mockElementSizes = exports.rerenderWrapper = exports.deepFreeze = exports.awaitMockPromises = exports.delayPromise = void 0;
66
77
  var react_1 = require("@testing-library/react");
67
78
  var delayPromise = function (delay) {
68
79
  if (delay === void 0) { delay = 0; }
@@ -130,6 +141,19 @@ var mockElementSizes = function (element, defaults) {
130
141
  return { mock: mock, unmock: unmock };
131
142
  };
132
143
  exports.mockElementSizes = mockElementSizes;
144
+ var mockComputedStyles = function (styles) {
145
+ if (styles === void 0) { styles = {}; }
146
+ var originalGetComputedStyle = window.getComputedStyle;
147
+ Object.defineProperty(window, 'getComputedStyle', {
148
+ value: function () { return (__assign(__assign({}, styles), { getPropertyValue: function () { return ''; } })); }
149
+ });
150
+ return function () {
151
+ Object.defineProperty(window, 'getComputedStyle', {
152
+ value: originalGetComputedStyle
153
+ });
154
+ };
155
+ };
156
+ exports.mockComputedStyles = mockComputedStyles;
133
157
  var mockBasicTableSizing = function (_a) {
134
158
  var _b = _a === void 0 ? {} : _a, _c = _b.width, width = _c === void 0 ? 2100 : _c, _d = _b.height, height = _d === void 0 ? 1000 : _d;
135
159
  var _e = (0, exports.mockElementSizes)(window.HTMLElement.prototype, { offsetHeight: height, offsetWidth: width }), mock = _e.mock, unmock = _e.unmock;
@@ -16,9 +16,7 @@ type Props = {
16
16
  max: number;
17
17
  offset: number;
18
18
  }) => Promise<Lookups>;
19
- lookups: {
20
- [key: string]: LookupValue[];
21
- };
19
+ lookups: Lookups;
22
20
  resolveLookups: (lookupType: string, codeValues: LookupValue[]) => void;
23
21
  fullWidth?: boolean;
24
22
  disabled?: boolean;
@@ -174,7 +174,8 @@ export var DependentLookupEditor = function (_a) {
174
174
  }).markAsTouched;
175
175
  return (React.createElement(ReactSelect, __assign({}, otherProps, { isMulti: multiple, classes: styles, menuPortalTarget: document.body, menuPlacement: "auto", TextFieldProps: __assign(__assign({}, TextFieldProps), { ref: inputRef, disabled: (TextFieldProps === null || TextFieldProps === void 0 ? void 0 : TextFieldProps.disabled) || disabled }), inputRef: inputRef, innerRef: selectRef, styles: {
176
176
  menuPortal: function (base) { return (__assign(__assign({}, base), { zIndex: 1300 })); },
177
- container: function (base) { return (__assign(__assign({}, base), (fullWidth ? { width: '100%' } : {}))); }
177
+ container: function (base) { return (__assign(__assign({}, base), (fullWidth ? { width: '100%' } : {}))); },
178
+ input: function (base) { return (__assign(__assign({}, base), { visibility: 'visible' })); }
178
179
  }, noOptionsMessage: function () {
179
180
  return optionsAreLoading && !showMoreButton ? i18n.text('Loading...') : i18n.text('No results found');
180
181
  }, components: SelectComponents, isClearable: true, isSearchable: true, controlShouldRenderValue: multiple, inputValue: inputValue, filterOption: multiple ? undefined : T, onInputChange: handleInputChange, loadingMessage: function () { return i18n.text('Loading...'); }, isLoading: !inputValue && isLoadingDefaultOptions, hideSelectedOptions: false, placeholder: placeholder || '', isDisabled: disabled, options: displayedOptions, getOptionValue: either(prop('value'), prop('lookupCode')), getOptionLabel: getOptionLabel, onChange: handleChange, onFocus: multiple ? undefined : handleFocus, value: defaultTo(multiple ? [] : null, value), menuListFooter: showMoreButton && React.createElement(ReactSelectLoadMoreButton, { loading: optionsAreLoading, onClick: loadMoreOptions }) })));
@@ -0,0 +1,137 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import React from 'react';
49
+ import { DependentLookupEditor } from './DependentLookupEditor';
50
+ import { render, screen, act } from '@testing-library/react';
51
+ import userEvent from '@testing-library/user-event';
52
+ var onChange = jest.fn();
53
+ var getLookups = jest.fn().mockResolvedValue({
54
+ AR: {
55
+ displayName: 'Argentina'
56
+ },
57
+ BG: {
58
+ displayName: 'Bulgaria'
59
+ },
60
+ CN: {
61
+ displayName: 'China'
62
+ }
63
+ });
64
+ var resolveLookups = jest.fn();
65
+ var defaultProps = {
66
+ value: {
67
+ value: 'Portugal',
68
+ lookupCode: 'PT'
69
+ },
70
+ lookups: {
71
+ COUNTRY_CD: {
72
+ PT: {
73
+ displayName: 'Portugal'
74
+ }
75
+ }
76
+ },
77
+ lookupCode: 'COUNTRY_CD',
78
+ error: false,
79
+ parents: [],
80
+ disabled: false,
81
+ placeholder: '',
82
+ TextFieldProps: {},
83
+ onChange: onChange,
84
+ getLookups: getLookups,
85
+ resolveLookups: resolveLookups
86
+ };
87
+ var setUp = function (props) {
88
+ if (props === void 0) { props = defaultProps; }
89
+ var user = userEvent.setup();
90
+ return __assign({ user: user }, render(React.createElement(DependentLookupEditor, __assign({}, props))));
91
+ };
92
+ describe('DependentLookupEditor tests', function () {
93
+ afterEach(function () {
94
+ jest.clearAllMocks();
95
+ });
96
+ it('should render components correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
97
+ var user;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ user = setUp().user;
102
+ expect(screen.getByRole('combobox')).toHaveValue('Portugal (PT)');
103
+ return [4 /*yield*/, user.click(screen.getByRole('combobox'))];
104
+ case 1:
105
+ _a.sent();
106
+ expect(screen.getByText('Argentina (AR)')).toBeInTheDocument();
107
+ expect(screen.getByText('China (CN)')).toBeInTheDocument();
108
+ expect(screen.getByText('Bulgaria (BG)')).toBeInTheDocument();
109
+ return [2 /*return*/];
110
+ }
111
+ });
112
+ }); });
113
+ it('should show input value when select is disabled', function () { return __awaiter(void 0, void 0, void 0, function () {
114
+ return __generator(this, function (_a) {
115
+ switch (_a.label) {
116
+ case 0:
117
+ setUp(__assign(__assign({}, defaultProps), { disabled: true }));
118
+ return [4 /*yield*/, act(function () { return __awaiter(void 0, void 0, void 0, function () {
119
+ return __generator(this, function (_a) {
120
+ switch (_a.label) {
121
+ case 0: return [4 /*yield*/, Promise.resolve()];
122
+ case 1:
123
+ _a.sent();
124
+ return [2 /*return*/];
125
+ }
126
+ });
127
+ }); })];
128
+ case 1:
129
+ _a.sent();
130
+ expect(screen.getByRole('combobox')).toHaveValue('Portugal (PT)');
131
+ expect(screen.getByRole('combobox')).toHaveAttribute('disabled');
132
+ expect(screen.getByRole('combobox')).toBeVisible();
133
+ return [2 /*return*/];
134
+ }
135
+ });
136
+ }); });
137
+ });
package/esm/index.d.ts CHANGED
@@ -284,7 +284,7 @@ export * from './types';
284
284
  export * from './constants';
285
285
  export { TestPerspectivesSettingsProvider } from './test-utils/TestPerspectiveSettingsProvider';
286
286
  export { TestStylesProvider } from './test-utils/TestStylesProvider';
287
- export { awaitMockPromises, deepFreeze, delayPromise, getMuiIconByName, getMuiIconsByName, mockBasicTableSizing, fixClicksOnResizablePanes, mockElementSizes, rerenderWrapper, FakeMouseEvent } from './test-utils';
287
+ export { awaitMockPromises, deepFreeze, delayPromise, getMuiIconByName, getMuiIconsByName, mockBasicTableSizing, fixClicksOnResizablePanes, mockElementSizes, rerenderWrapper, FakeMouseEvent, mockComputedStyles } from './test-utils';
288
288
  export * from './features/activity-log';
289
289
  export * from './features/crosswalks';
290
290
  export * from './features/graph';
package/esm/index.js CHANGED
@@ -287,7 +287,7 @@ export * from './constants';
287
287
  // test-utils
288
288
  export { TestPerspectivesSettingsProvider } from './test-utils/TestPerspectiveSettingsProvider';
289
289
  export { TestStylesProvider } from './test-utils/TestStylesProvider';
290
- export { awaitMockPromises, deepFreeze, delayPromise, getMuiIconByName, getMuiIconsByName, mockBasicTableSizing, fixClicksOnResizablePanes, mockElementSizes, rerenderWrapper, FakeMouseEvent } from './test-utils';
290
+ export { awaitMockPromises, deepFreeze, delayPromise, getMuiIconByName, getMuiIconsByName, mockBasicTableSizing, fixClicksOnResizablePanes, mockElementSizes, rerenderWrapper, FakeMouseEvent, mockComputedStyles } from './test-utils';
291
291
  // features / activity-log
292
292
  export * from './features/activity-log';
293
293
  // features / crosswalks
@@ -11,6 +11,7 @@ export declare const mockElementSizes: (element?: HTMLElement, defaults?: {
11
11
  mock: () => void;
12
12
  unmock: () => void;
13
13
  };
14
+ export declare const mockComputedStyles: (styles?: {}) => () => void;
14
15
  export declare const mockBasicTableSizing: ({ width, height }?: {
15
16
  width?: number;
16
17
  height?: number;
@@ -13,6 +13,17 @@ var __extends = (this && this.__extends) || (function () {
13
13
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
14
  };
15
15
  })();
16
+ var __assign = (this && this.__assign) || function () {
17
+ __assign = Object.assign || function(t) {
18
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
19
+ s = arguments[i];
20
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21
+ t[p] = s[p];
22
+ }
23
+ return t;
24
+ };
25
+ return __assign.apply(this, arguments);
26
+ };
16
27
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
28
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
29
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -122,6 +133,18 @@ export var mockElementSizes = function (element, defaults) {
122
133
  };
123
134
  return { mock: mock, unmock: unmock };
124
135
  };
136
+ export var mockComputedStyles = function (styles) {
137
+ if (styles === void 0) { styles = {}; }
138
+ var originalGetComputedStyle = window.getComputedStyle;
139
+ Object.defineProperty(window, 'getComputedStyle', {
140
+ value: function () { return (__assign(__assign({}, styles), { getPropertyValue: function () { return ''; } })); }
141
+ });
142
+ return function () {
143
+ Object.defineProperty(window, 'getComputedStyle', {
144
+ value: originalGetComputedStyle
145
+ });
146
+ };
147
+ };
125
148
  export var mockBasicTableSizing = function (_a) {
126
149
  var _b = _a === void 0 ? {} : _a, _c = _b.width, width = _c === void 0 ? 2100 : _c, _d = _b.height, height = _d === void 0 ? 1000 : _d;
127
150
  var _e = mockElementSizes(window.HTMLElement.prototype, { offsetHeight: height, offsetWidth: width }), mock = _e.mock, unmock = _e.unmock;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.1990",
3
+ "version": "1.4.1992",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",