decap-cms-widget-list 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -1,19 +1,15 @@
1
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
1
  import DecapCmsWidgetObject from 'decap-cms-widget-object';
7
2
  import controlComponent from './ListControl';
8
3
  import schema from './schema';
9
4
  const previewComponent = DecapCmsWidgetObject.previewComponent;
10
5
  function Widget(opts = {}) {
11
- return _objectSpread({
6
+ return {
12
7
  name: 'list',
13
8
  controlComponent,
14
9
  previewComponent,
15
- schema
16
- }, opts);
10
+ schema,
11
+ ...opts
12
+ };
17
13
  }
18
14
  export const DecapCmsWidgetList = {
19
15
  Widget,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "decap-cms-widget-list",
3
3
  "description": "Widget for editing lists in Decap CMS.",
4
- "version": "3.3.0",
4
+ "version": "3.4.0",
5
5
  "homepage": "https://www.decapcms.org/docs/widgets/#list",
6
6
  "repository": "https://github.com/decaporg/decap-cms/tree/main/packages/decap-cms-widget-list",
7
7
  "bugs": "https://github.com/decaporg/decap-cms/issues",
@@ -34,8 +34,8 @@
34
34
  "immutable": "^3.7.6",
35
35
  "lodash": "^4.17.11",
36
36
  "prop-types": "^15.7.2",
37
- "react": "^18.2.0",
37
+ "react": "^19.1.0",
38
38
  "react-immutable-proptypes": "^2.1.0"
39
39
  },
40
- "gitHead": "e2165450e5963b2a8d76d4cf331319bf91f05d45"
40
+ "gitHead": "ed7e99318007b83f4c57f3237bf92b931676820a"
41
41
  }
@@ -4,7 +4,9 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
4
4
  import styled from '@emotion/styled';
5
5
  import { css, ClassNames } from '@emotion/react';
6
6
  import { List, Map, fromJS } from 'immutable';
7
- import { partial, isEmpty, uniqueId } from 'lodash';
7
+ import partial from 'lodash/partial';
8
+ import isEmpty from 'lodash/isEmpty';
9
+ import uniqueId from 'lodash/uniqueId';
8
10
  import { v4 as uuid } from 'uuid';
9
11
  import DecapCmsWidgetObject from 'decap-cms-widget-object';
10
12
  import {
@@ -219,6 +221,11 @@ export default class ListControl extends React.Component {
219
221
  };
220
222
  }
221
223
 
224
+ componentDidMount() {
225
+ // Manually validate PropTypes - React 19 breaking change
226
+ PropTypes.checkPropTypes(ListControl.propTypes, this.props, 'prop', 'ListControl');
227
+ }
228
+
222
229
  valueToString = value => {
223
230
  let stringValue;
224
231
  if (List.isList(value) || Array.isArray(value)) {
@@ -104,11 +104,11 @@ describe('ListControl', () => {
104
104
  />,
105
105
  );
106
106
 
107
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'true');
108
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'true');
107
+ expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed');
108
+ expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed');
109
109
 
110
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'true');
111
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'true');
110
+ expect(getByTestId('object-control-0')).toHaveAttribute('collapsed');
111
+ expect(getByTestId('object-control-1')).toHaveAttribute('collapsed');
112
112
 
113
113
  expect(asFragment()).toMatchSnapshot();
114
114
  });
@@ -133,11 +133,11 @@ describe('ListControl', () => {
133
133
  />,
134
134
  );
135
135
 
136
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'false');
137
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'false');
136
+ expect(getByTestId('styled-list-item-top-bar-0')).not.toHaveAttribute('collapsed');
137
+ expect(getByTestId('styled-list-item-top-bar-1')).not.toHaveAttribute('collapsed');
138
138
 
139
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'false');
140
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'false');
139
+ expect(getByTestId('object-control-0')).not.toHaveAttribute('collapsed');
140
+ expect(getByTestId('object-control-1')).not.toHaveAttribute('collapsed');
141
141
 
142
142
  expect(asFragment()).toMatchSnapshot();
143
143
  });
@@ -162,19 +162,19 @@ describe('ListControl', () => {
162
162
  />,
163
163
  );
164
164
 
165
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'false');
166
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'false');
165
+ expect(getByTestId('styled-list-item-top-bar-0')).not.toHaveAttribute('collapsed');
166
+ expect(getByTestId('styled-list-item-top-bar-1')).not.toHaveAttribute('collapsed');
167
167
 
168
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'false');
169
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'false');
168
+ expect(getByTestId('object-control-0')).not.toHaveAttribute('collapsed');
169
+ expect(getByTestId('object-control-1')).not.toHaveAttribute('collapsed');
170
170
 
171
171
  fireEvent.click(getByTestId('expand-button'));
172
172
 
173
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'true');
174
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'true');
173
+ expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed');
174
+ expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed');
175
175
 
176
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'true');
177
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'true');
176
+ expect(getByTestId('object-control-0')).toHaveAttribute('collapsed');
177
+ expect(getByTestId('object-control-1')).toHaveAttribute('collapsed');
178
178
  });
179
179
 
180
180
  it('should collapse a single item on collapse item click', () => {
@@ -197,19 +197,19 @@ describe('ListControl', () => {
197
197
  />,
198
198
  );
199
199
 
200
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'false');
201
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'false');
200
+ expect(getByTestId('styled-list-item-top-bar-0')).not.toHaveAttribute('collapsed');
201
+ expect(getByTestId('styled-list-item-top-bar-1')).not.toHaveAttribute('collapsed');
202
202
 
203
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'false');
204
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'false');
203
+ expect(getByTestId('object-control-0')).not.toHaveAttribute('collapsed');
204
+ expect(getByTestId('object-control-1')).not.toHaveAttribute('collapsed');
205
205
 
206
206
  fireEvent.click(getByTestId('styled-list-item-top-bar-0'));
207
207
 
208
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'true');
209
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'false');
208
+ expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed');
209
+ expect(getByTestId('styled-list-item-top-bar-1')).not.toHaveAttribute('collapsed');
210
210
 
211
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'true');
212
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'false');
211
+ expect(getByTestId('object-control-0')).toHaveAttribute('collapsed');
212
+ expect(getByTestId('object-control-1')).not.toHaveAttribute('collapsed');
213
213
  });
214
214
 
215
215
  it('should expand all items on top bar expand click', () => {
@@ -232,19 +232,19 @@ describe('ListControl', () => {
232
232
  />,
233
233
  );
234
234
 
235
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'true');
236
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'true');
235
+ expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed');
236
+ expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed');
237
237
 
238
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'true');
239
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'true');
238
+ expect(getByTestId('object-control-0')).toHaveAttribute('collapsed');
239
+ expect(getByTestId('object-control-1')).toHaveAttribute('collapsed');
240
240
 
241
241
  fireEvent.click(getByTestId('expand-button'));
242
242
 
243
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'false');
244
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'false');
243
+ expect(getByTestId('styled-list-item-top-bar-0')).not.toHaveAttribute('collapsed');
244
+ expect(getByTestId('styled-list-item-top-bar-1')).not.toHaveAttribute('collapsed');
245
245
 
246
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'false');
247
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'false');
246
+ expect(getByTestId('object-control-0')).not.toHaveAttribute('collapsed');
247
+ expect(getByTestId('object-control-1')).not.toHaveAttribute('collapsed');
248
248
  });
249
249
 
250
250
  it('should expand a single item on expand item click', () => {
@@ -267,19 +267,19 @@ describe('ListControl', () => {
267
267
  />,
268
268
  );
269
269
 
270
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'true');
271
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'true');
270
+ expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed');
271
+ expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed');
272
272
 
273
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'true');
274
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'true');
273
+ expect(getByTestId('object-control-0')).toHaveAttribute('collapsed');
274
+ expect(getByTestId('object-control-1')).toHaveAttribute('collapsed');
275
275
 
276
276
  fireEvent.click(getByTestId('styled-list-item-top-bar-0'));
277
277
 
278
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'false');
279
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'true');
278
+ expect(getByTestId('styled-list-item-top-bar-0')).not.toHaveAttribute('collapsed');
279
+ expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed');
280
280
 
281
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'false');
282
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'true');
281
+ expect(getByTestId('object-control-0')).not.toHaveAttribute('collapsed');
282
+ expect(getByTestId('object-control-1')).toHaveAttribute('collapsed');
283
283
  });
284
284
 
285
285
  it('should use widget name when no summary or label are configured for mixed types', () => {
@@ -477,11 +477,11 @@ describe('ListControl', () => {
477
477
  />,
478
478
  );
479
479
 
480
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'true');
481
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'true');
480
+ expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed');
481
+ expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed');
482
482
 
483
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'true');
484
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'true');
483
+ expect(getByTestId('object-control-0')).toHaveAttribute('collapsed');
484
+ expect(getByTestId('object-control-1')).toHaveAttribute('collapsed');
485
485
 
486
486
  expect(asFragment()).toMatchSnapshot();
487
487
  });
@@ -501,11 +501,11 @@ describe('ListControl', () => {
501
501
  />,
502
502
  );
503
503
 
504
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'false');
505
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'false');
504
+ expect(getByTestId('styled-list-item-top-bar-0')).not.toHaveAttribute('collapsed');
505
+ expect(getByTestId('styled-list-item-top-bar-1')).not.toHaveAttribute('collapsed');
506
506
 
507
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'false');
508
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'false');
507
+ expect(getByTestId('object-control-0')).not.toHaveAttribute('collapsed');
508
+ expect(getByTestId('object-control-1')).not.toHaveAttribute('collapsed');
509
509
 
510
510
  expect(asFragment()).toMatchSnapshot();
511
511
  });
@@ -535,11 +535,11 @@ describe('ListControl', () => {
535
535
 
536
536
  fireEvent.click(getByTestId('expand-button'));
537
537
 
538
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'true');
539
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'true');
538
+ expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed');
539
+ expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed');
540
540
 
541
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'true');
542
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'true');
541
+ expect(getByTestId('object-control-0')).toHaveAttribute('collapsed');
542
+ expect(getByTestId('object-control-1')).toHaveAttribute('collapsed');
543
543
  });
544
544
 
545
545
  it('should render list with fields with collapse = "false" and default minimize_collapsed = "true"', () => {
@@ -558,11 +558,11 @@ describe('ListControl', () => {
558
558
  />,
559
559
  );
560
560
 
561
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'false');
562
- expect(getByTestId('styled-list-item-top-bar-1')).toHaveAttribute('collapsed', 'false');
561
+ expect(getByTestId('styled-list-item-top-bar-0')).not.toHaveAttribute('collapsed');
562
+ expect(getByTestId('styled-list-item-top-bar-1')).not.toHaveAttribute('collapsed');
563
563
 
564
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'false');
565
- expect(getByTestId('object-control-1')).toHaveAttribute('collapsed', 'false');
564
+ expect(getByTestId('object-control-0')).not.toHaveAttribute('collapsed');
565
+ expect(getByTestId('object-control-1')).not.toHaveAttribute('collapsed');
566
566
 
567
567
  expect(asFragment()).toMatchSnapshot();
568
568
 
@@ -594,8 +594,8 @@ describe('ListControl', () => {
594
594
 
595
595
  rerender(<ListControl {...props} field={field} value={fromJS([{}])} />);
596
596
 
597
- expect(getByTestId('styled-list-item-top-bar-0')).toHaveAttribute('collapsed', 'false');
598
- expect(getByTestId('object-control-0')).toHaveAttribute('collapsed', 'false');
597
+ expect(getByTestId('styled-list-item-top-bar-0')).not.toHaveAttribute('collapsed');
598
+ expect(getByTestId('object-control-0')).not.toHaveAttribute('collapsed');
599
599
 
600
600
  expect(asFragment()).toMatchSnapshot();
601
601
  });