@duetds/react 5.4.0 → 6.0.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.
Files changed (25) hide show
  1. package/commonjs/react-component-lib/createComponent.d.ts +1 -1
  2. package/commonjs/react-component-lib/createComponent.js +37 -7
  3. package/commonjs/react-component-lib/createComponent.js.map +1 -1
  4. package/commonjs/react-component-lib/createOverlayComponent.d.ts +5 -4
  5. package/commonjs/react-component-lib/createOverlayComponent.js +53 -10
  6. package/commonjs/react-component-lib/createOverlayComponent.js.map +1 -1
  7. package/commonjs/react-component-lib/utils/attachProps.d.ts +6 -6
  8. package/commonjs/react-component-lib/utils/attachProps.js +14 -34
  9. package/commonjs/react-component-lib/utils/attachProps.js.map +1 -1
  10. package/commonjs/react-component-lib/utils/index.d.ts +5 -2
  11. package/commonjs/react-component-lib/utils/index.js +21 -10
  12. package/commonjs/react-component-lib/utils/index.js.map +1 -1
  13. package/lib/react-component-lib/createComponent.d.ts +1 -1
  14. package/lib/react-component-lib/createComponent.js +15 -5
  15. package/lib/react-component-lib/createComponent.js.map +1 -1
  16. package/lib/react-component-lib/createOverlayComponent.d.ts +5 -4
  17. package/lib/react-component-lib/createOverlayComponent.js +31 -11
  18. package/lib/react-component-lib/createOverlayComponent.js.map +1 -1
  19. package/lib/react-component-lib/utils/attachProps.d.ts +6 -6
  20. package/lib/react-component-lib/utils/attachProps.js +14 -34
  21. package/lib/react-component-lib/utils/attachProps.js.map +1 -1
  22. package/lib/react-component-lib/utils/index.d.ts +5 -2
  23. package/lib/react-component-lib/utils/index.js +17 -4
  24. package/lib/react-component-lib/utils/index.js.map +1 -1
  25. package/package.json +9 -9
@@ -6,5 +6,5 @@ interface StencilReactInternalProps<ElementType> extends React.HTMLAttributes<El
6
6
  forwardedRef: React.RefObject<ElementType>;
7
7
  ref?: React.Ref<any>;
8
8
  }
9
- export declare const createReactComponent: <PropType, ElementType extends HTMLStencilElement, ContextStateType = {}, ExpandedPropsTypes = {}>(tagName: string, ReactComponentContext?: React.Context<ContextStateType>, manipulatePropsFunction?: (originalProps: StencilReactInternalProps<ElementType>, propsToPass: any) => ExpandedPropsTypes) => React.ForwardRefExoticComponent<React.PropsWithoutRef<PropType & Omit<React.HTMLAttributes<ElementType>, "style"> & import("./interfaces").StyleReactProps> & React.RefAttributes<ElementType>>;
9
+ export declare const createReactComponent: <PropType, ElementType extends HTMLStencilElement, ContextStateType = {}, ExpandedPropsTypes = {}>(tagName: string, ReactComponentContext?: React.Context<ContextStateType>, manipulatePropsFunction?: (originalProps: StencilReactInternalProps<ElementType>, propsToPass: any) => ExpandedPropsTypes, defineCustomElement?: () => void) => React.ForwardRefExoticComponent<React.PropsWithoutRef<import("./utils").StencilReactExternalProps<PropType, ElementType>> & React.RefAttributes<ElementType>>;
10
10
  export {};
@@ -25,6 +25,29 @@ var __assign = (this && this.__assign) || function () {
25
25
  };
26
26
  return __assign.apply(this, arguments);
27
27
  };
28
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ var desc = Object.getOwnPropertyDescriptor(m, k);
31
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
+ desc = { enumerable: true, get: function() { return m[k]; } };
33
+ }
34
+ Object.defineProperty(o, k2, desc);
35
+ }) : (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ o[k2] = m[k];
38
+ }));
39
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
41
+ }) : function(o, v) {
42
+ o["default"] = v;
43
+ });
44
+ var __importStar = (this && this.__importStar) || function (mod) {
45
+ if (mod && mod.__esModule) return mod;
46
+ var result = {};
47
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
48
+ __setModuleDefault(result, mod);
49
+ return result;
50
+ };
28
51
  var __rest = (this && this.__rest) || function (s, e) {
29
52
  var t = {};
30
53
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -36,14 +59,14 @@ var __rest = (this && this.__rest) || function (s, e) {
36
59
  }
37
60
  return t;
38
61
  };
39
- var __importDefault = (this && this.__importDefault) || function (mod) {
40
- return (mod && mod.__esModule) ? mod : { "default": mod };
41
- };
42
62
  Object.defineProperty(exports, "__esModule", { value: true });
43
63
  exports.createReactComponent = void 0;
44
- var react_1 = __importDefault(require("react"));
64
+ var react_1 = __importStar(require("react"));
45
65
  var utils_1 = require("./utils");
46
- var createReactComponent = function (tagName, ReactComponentContext, manipulatePropsFunction) {
66
+ var createReactComponent = function (tagName, ReactComponentContext, manipulatePropsFunction, defineCustomElement) {
67
+ if (defineCustomElement !== undefined) {
68
+ defineCustomElement();
69
+ }
47
70
  var displayName = (0, utils_1.dashToPascalCase)(tagName);
48
71
  var ReactComponent = /** @class */ (function (_super) {
49
72
  __extends(class_1, _super);
@@ -66,7 +89,7 @@ var createReactComponent = function (tagName, ReactComponentContext, manipulateP
66
89
  var value = cProps[name];
67
90
  if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {
68
91
  var eventName = name.substring(2).toLowerCase();
69
- if (typeof document !== 'undefined' && (0, utils_1.isCoveredByReact)(eventName, document)) {
92
+ if (typeof document !== 'undefined' && (0, utils_1.isCoveredByReact)(eventName)) {
70
93
  acc[name] = value;
71
94
  }
72
95
  }
@@ -84,7 +107,14 @@ var createReactComponent = function (tagName, ReactComponentContext, manipulateP
84
107
  propsToPass = manipulatePropsFunction(this.props, propsToPass);
85
108
  }
86
109
  var newProps = __assign(__assign({}, propsToPass), { ref: (0, utils_1.mergeRefs)(forwardedRef, this.setComponentElRef), style: style });
87
- return react_1.default.createElement(tagName, newProps, children);
110
+ /**
111
+ * We use createElement here instead of
112
+ * React.createElement to work around a
113
+ * bug in Vite (https://github.com/vitejs/vite/issues/6104).
114
+ * React.createElement causes all elements to be rendered
115
+ * as <tagname> instead of the actual Web Component.
116
+ */
117
+ return (0, react_1.createElement)(tagName, newProps, children);
88
118
  };
89
119
  Object.defineProperty(class_1, "displayName", {
90
120
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"file":"createComponent.js","sourceRoot":"","sources":["../../src/react-component-lib/createComponent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createComponent.js","sourceRoot":"","sources":["../../src/react-component-lib/createComponent.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { OverlayEventDetail } from './interfaces';
2
1
  import React from 'react';
2
+ import { OverlayEventDetail } from './interfaces';
3
+ import { StencilReactForwardedRef } from './utils';
3
4
  interface OverlayElement extends HTMLElement {
4
5
  present: () => Promise<void>;
5
6
  dismiss: (data?: any, role?: string | undefined) => Promise<boolean>;
@@ -12,9 +13,9 @@ export interface ReactOverlayProps {
12
13
  onWillDismiss?: (event: CustomEvent<OverlayEventDetail>) => void;
13
14
  onWillPresent?: (event: CustomEvent<OverlayEventDetail>) => void;
14
15
  }
15
- export declare const createOverlayComponent: <OverlayComponent extends object, OverlayType extends OverlayElement>(displayName: string, controller: {
16
+ export declare const createOverlayComponent: <OverlayComponent extends object, OverlayType extends OverlayElement>(tagName: string, controller: {
16
17
  create: (options: any) => Promise<OverlayType>;
17
- }) => React.ForwardRefExoticComponent<React.PropsWithoutRef<OverlayComponent & ReactOverlayProps & {
18
- forwardedRef?: React.RefObject<OverlayType>;
18
+ }, customElement?: any) => React.ForwardRefExoticComponent<React.PropsWithoutRef<OverlayComponent & ReactOverlayProps & {
19
+ forwardedRef?: StencilReactForwardedRef<OverlayType>;
19
20
  }> & React.RefAttributes<OverlayType>>;
20
21
  export {};
@@ -25,6 +25,29 @@ var __assign = (this && this.__assign) || function () {
25
25
  };
26
26
  return __assign.apply(this, arguments);
27
27
  };
28
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ var desc = Object.getOwnPropertyDescriptor(m, k);
31
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
+ desc = { enumerable: true, get: function() { return m[k]; } };
33
+ }
34
+ Object.defineProperty(o, k2, desc);
35
+ }) : (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ o[k2] = m[k];
38
+ }));
39
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
41
+ }) : function(o, v) {
42
+ o["default"] = v;
43
+ });
44
+ var __importStar = (this && this.__importStar) || function (mod) {
45
+ if (mod && mod.__esModule) return mod;
46
+ var result = {};
47
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
48
+ __setModuleDefault(result, mod);
49
+ return result;
50
+ };
28
51
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
52
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
53
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -77,19 +100,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
77
100
  };
78
101
  Object.defineProperty(exports, "__esModule", { value: true });
79
102
  exports.createOverlayComponent = void 0;
80
- var react_1 = __importDefault(require("react"));
103
+ var react_1 = __importStar(require("react"));
81
104
  var react_dom_1 = __importDefault(require("react-dom"));
82
105
  var utils_1 = require("./utils");
83
- var createOverlayComponent = function (displayName, controller) {
106
+ var createOverlayComponent = function (tagName, controller, customElement) {
107
+ (0, utils_1.defineCustomElement)(tagName, customElement);
108
+ var displayName = (0, utils_1.dashToPascalCase)(tagName);
84
109
  var didDismissEventName = "on".concat(displayName, "DidDismiss");
85
110
  var didPresentEventName = "on".concat(displayName, "DidPresent");
86
111
  var willDismissEventName = "on".concat(displayName, "WillDismiss");
87
112
  var willPresentEventName = "on".concat(displayName, "WillPresent");
113
+ var isDismissing = false;
88
114
  var Overlay = /** @class */ (function (_super) {
89
115
  __extends(Overlay, _super);
90
116
  function Overlay(props) {
91
117
  var _this = _super.call(this, props) || this;
92
- _this.el = document.createElement('div');
118
+ if (typeof document !== 'undefined') {
119
+ _this.el = document.createElement('div');
120
+ }
93
121
  _this.handleDismiss = _this.handleDismiss.bind(_this);
94
122
  return _this;
95
123
  }
@@ -114,9 +142,14 @@ var createOverlayComponent = function (displayName, controller) {
114
142
  if (this.props.onDidDismiss) {
115
143
  this.props.onDidDismiss(event);
116
144
  }
117
- if (this.props.forwardedRef) {
118
- this.props.forwardedRef.current = undefined;
145
+ (0, utils_1.setRef)(this.props.forwardedRef, null);
146
+ };
147
+ Overlay.prototype.shouldComponentUpdate = function (nextProps) {
148
+ // Check if the overlay component is about to dismiss
149
+ if (this.overlay && nextProps.isOpen !== this.props.isOpen && nextProps.isOpen === false) {
150
+ isDismissing = true;
119
151
  }
152
+ return true;
120
153
  };
121
154
  Overlay.prototype.componentDidUpdate = function (prevProps) {
122
155
  return __awaiter(this, void 0, void 0, function () {
@@ -133,6 +166,13 @@ var createOverlayComponent = function (displayName, controller) {
133
166
  return [4 /*yield*/, this.overlay.dismiss()];
134
167
  case 1:
135
168
  _a.sent();
169
+ isDismissing = false;
170
+ /**
171
+ * Now that the overlay is dismissed
172
+ * we need to render again so that any
173
+ * inner components will be unmounted
174
+ */
175
+ this.forceUpdate();
136
176
  _a.label = 2;
137
177
  case 2: return [2 /*return*/];
138
178
  }
@@ -159,9 +199,7 @@ var createOverlayComponent = function (displayName, controller) {
159
199
  return [4 /*yield*/, controller.create(__assign(__assign({}, elementProps), { component: this.el, componentProps: {} }))];
160
200
  case 1:
161
201
  _b.overlay = _d.sent();
162
- if (this.props.forwardedRef) {
163
- this.props.forwardedRef.current = this.overlay;
164
- }
202
+ (0, utils_1.setRef)(this.props.forwardedRef, this.overlay);
165
203
  (0, utils_1.attachProps)(this.overlay, elementProps, prevProps);
166
204
  return [4 /*yield*/, this.overlay.present()];
167
205
  case 2:
@@ -172,10 +210,15 @@ var createOverlayComponent = function (displayName, controller) {
172
210
  });
173
211
  };
174
212
  Overlay.prototype.render = function () {
175
- return react_dom_1.default.createPortal(this.props.isOpen ? this.props.children : null, this.el);
213
+ /**
214
+ * Continue to render the component even when
215
+ * overlay is dismissing otherwise component
216
+ * will be hidden before animation is done.
217
+ */
218
+ return react_dom_1.default.createPortal(this.props.isOpen || isDismissing ? this.props.children : null, this.el);
176
219
  };
177
220
  return Overlay;
178
- }(react_1.default.Component));
221
+ }(react_1.Component));
179
222
  return react_1.default.forwardRef(function (props, ref) {
180
223
  return react_1.default.createElement(Overlay, __assign({}, props, { forwardedRef: ref }));
181
224
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createOverlayComponent.js","sourceRoot":"","sources":["../../src/react-component-lib/createOverlayComponent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createOverlayComponent.js","sourceRoot":"","sources":["../../src/react-component-lib/createOverlayComponent.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- declare type ElementWithEvents = Element & {
2
- __events?: Record<string, (e: Event) => any | undefined>;
3
- };
4
1
  export declare const attachProps: (node: HTMLElement, newProps: any, oldProps?: any) => void;
5
2
  export declare const getClassName: (classList: DOMTokenList, newProps: any, oldProps: any) => string;
6
3
  /**
7
4
  * Checks if an event is supported in the current execution environment.
8
5
  * @license Modernizr 3.0.0pre (Custom Build) | MIT
9
6
  */
10
- export declare const isCoveredByReact: (eventNameSuffix: string, doc: Document) => boolean;
11
- export declare const syncEvent: (node: ElementWithEvents, eventName: string, newEventHandler?: (e: Event) => any) => void;
12
- export {};
7
+ export declare const isCoveredByReact: (eventNameSuffix: string) => boolean;
8
+ export declare const syncEvent: (node: Element & {
9
+ __events?: {
10
+ [key: string]: (e: Event) => any;
11
+ };
12
+ }, eventName: string, newEventHandler?: (e: Event) => any) => void;
@@ -2,25 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.syncEvent = exports.isCoveredByReact = exports.getClassName = exports.attachProps = void 0;
4
4
  var case_1 = require("./case");
5
- var cleanupEvents = function (node, newProps) {
6
- if (node.__events == null) {
7
- return;
8
- }
9
- for (var eventName in node.__events) {
10
- if (!node.__events.hasOwnProperty(eventName)) {
11
- continue;
12
- }
13
- var prefixedEventName = "on".concat(eventName[0].toUpperCase()).concat(eventName.substring(1));
14
- // we should only remove events that are no longer in props
15
- if (newProps[prefixedEventName] != null) {
16
- continue;
17
- }
18
- if (node.__events[eventName]) {
19
- node.removeEventListener(eventName, node.__events[eventName]);
20
- delete node.__events[eventName];
21
- }
22
- }
23
- };
24
5
  var attachProps = function (node, newProps, oldProps) {
25
6
  if (oldProps === void 0) { oldProps = {}; }
26
7
  // some test frameworks don't render DOM elements, so we test here to make sure we are dealing with DOM first
@@ -30,9 +11,6 @@ var attachProps = function (node, newProps, oldProps) {
30
11
  if (className !== '') {
31
12
  node.className = className;
32
13
  }
33
- // remove any event listeners that do not appear in newProps
34
- // since they are no longer used/wanted by the component
35
- cleanupEvents(node, newProps);
36
14
  Object.keys(newProps).forEach(function (name) {
37
15
  if (name === 'children' ||
38
16
  name === 'style' ||
@@ -45,7 +23,7 @@ var attachProps = function (node, newProps, oldProps) {
45
23
  if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {
46
24
  var eventName = name.substring(2);
47
25
  var eventNameLc = eventName[0].toLowerCase() + eventName.substring(1);
48
- if (typeof document !== 'undefined' && !(0, exports.isCoveredByReact)(eventNameLc, document)) {
26
+ if (!(0, exports.isCoveredByReact)(eventNameLc)) {
49
27
  (0, exports.syncEvent)(node, eventNameLc, newProps[name]);
50
28
  }
51
29
  }
@@ -55,9 +33,6 @@ var attachProps = function (node, newProps, oldProps) {
55
33
  if (propType === 'string') {
56
34
  node.setAttribute((0, case_1.camelToDashCase)(name), newProps[name]);
57
35
  }
58
- else {
59
- node[name] = newProps[name];
60
- }
61
36
  }
62
37
  });
63
38
  }
@@ -92,15 +67,20 @@ exports.getClassName = getClassName;
92
67
  * Checks if an event is supported in the current execution environment.
93
68
  * @license Modernizr 3.0.0pre (Custom Build) | MIT
94
69
  */
95
- var isCoveredByReact = function (eventNameSuffix, doc) {
96
- var eventName = 'on' + eventNameSuffix;
97
- var isSupported = eventName in doc;
98
- if (!isSupported) {
99
- var element = doc.createElement('div');
100
- element.setAttribute(eventName, 'return;');
101
- isSupported = typeof element[eventName] === 'function';
70
+ var isCoveredByReact = function (eventNameSuffix) {
71
+ if (typeof document === 'undefined') {
72
+ return true;
73
+ }
74
+ else {
75
+ var eventName = 'on' + eventNameSuffix;
76
+ var isSupported = eventName in document;
77
+ if (!isSupported) {
78
+ var element = document.createElement('div');
79
+ element.setAttribute(eventName, 'return;');
80
+ isSupported = typeof element[eventName] === 'function';
81
+ }
82
+ return isSupported;
102
83
  }
103
- return isSupported;
104
84
  };
105
85
  exports.isCoveredByReact = isCoveredByReact;
106
86
  var syncEvent = function (node, eventName, newEventHandler) {
@@ -1 +1 @@
1
- {"version":3,"file":"attachProps.js","sourceRoot":"","sources":["../../../src/react-component-lib/utils/attachProps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachProps.js","sourceRoot":"","sources":["../../../src/react-component-lib/utils/attachProps.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import React from 'react';
2
2
  import type { StyleReactProps } from '../interfaces';
3
3
  export declare type StencilReactExternalProps<PropType, ElementType> = PropType & Omit<React.HTMLAttributes<ElementType>, 'style'> & StyleReactProps;
4
- export declare const mergeRefs: <ElementType>(...refs: React.Ref<ElementType>[]) => (value: ElementType) => void;
5
- export declare const createForwardRef: <PropType, ElementType>(ReactComponent: any, displayName: string) => React.ForwardRefExoticComponent<React.PropsWithoutRef<PropType & Omit<React.HTMLAttributes<ElementType>, "style"> & StyleReactProps> & React.RefAttributes<ElementType>>;
4
+ export declare type StencilReactForwardedRef<T> = ((instance: T | null) => void) | React.MutableRefObject<T | null> | null;
5
+ export declare const setRef: (ref: StencilReactForwardedRef<any> | React.Ref<any> | undefined, value: any) => void;
6
+ export declare const mergeRefs: (...refs: (StencilReactForwardedRef<any> | React.Ref<any> | undefined)[]) => React.RefCallback<any>;
7
+ export declare const createForwardRef: <PropType, ElementType>(ReactComponent: any, displayName: string) => React.ForwardRefExoticComponent<React.PropsWithoutRef<StencilReactExternalProps<PropType, ElementType>> & React.RefAttributes<ElementType>>;
8
+ export declare const defineCustomElement: (tagName: string, customElement: any) => void;
6
9
  export * from './attachProps';
7
10
  export * from './case';
@@ -28,23 +28,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  return (mod && mod.__esModule) ? mod : { "default": mod };
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.createForwardRef = exports.mergeRefs = void 0;
31
+ exports.defineCustomElement = exports.createForwardRef = exports.mergeRefs = exports.setRef = void 0;
32
32
  var react_1 = __importDefault(require("react"));
33
- // The comma in the type is to trick typescript because it things a single generic in a tsx file is jsx
33
+ var setRef = function (ref, value) {
34
+ if (typeof ref === 'function') {
35
+ ref(value);
36
+ }
37
+ else if (ref != null) {
38
+ // Cast as a MutableRef so we can assign current
39
+ ref.current = value;
40
+ }
41
+ };
42
+ exports.setRef = setRef;
34
43
  var mergeRefs = function () {
35
44
  var refs = [];
36
45
  for (var _i = 0; _i < arguments.length; _i++) {
37
46
  refs[_i] = arguments[_i];
38
47
  }
39
48
  return function (value) {
40
- return refs.forEach(function (ref) {
41
- if (typeof ref === 'function') {
42
- ref(value);
43
- }
44
- else if (ref != null) {
45
- // This is typed as readonly so we need to allow for override
46
- ref.current = value;
47
- }
49
+ refs.forEach(function (ref) {
50
+ (0, exports.setRef)(ref, value);
48
51
  });
49
52
  };
50
53
  };
@@ -57,6 +60,14 @@ var createForwardRef = function (ReactComponent, displayName) {
57
60
  return react_1.default.forwardRef(forwardRef);
58
61
  };
59
62
  exports.createForwardRef = createForwardRef;
63
+ var defineCustomElement = function (tagName, customElement) {
64
+ if (customElement !== undefined &&
65
+ typeof customElements !== 'undefined' &&
66
+ !customElements.get(tagName)) {
67
+ customElements.define(tagName, customElement);
68
+ }
69
+ };
70
+ exports.defineCustomElement = defineCustomElement;
60
71
  __exportStar(require("./attachProps"), exports);
61
72
  __exportStar(require("./case"), exports);
62
73
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-component-lib/utils/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAU1B,uGAAuG;AAChG,IAAM,SAAS,GAAG;IAAe,cAAiC;SAAjC,UAAiC,EAAjC,qBAAiC,EAAjC,IAAiC;QAAjC,yBAAiC;;IAAK,OAAA,UAC5E,KAAkB;QAElB,OAAA,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;YACf,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC7B,GAAG,CAAC,KAAK,CAAC,CAAC;aACZ;iBAAM,IAAI,GAAG,IAAI,IAAI,EAAE;gBACtB,6DAA6D;gBAC5D,GAA6C,CAAC,OAAO,GAAG,KAAK,CAAC;aAChE;QACH,CAAC,CAAC;IAPF,CAOE;AAV0E,CAU1E,CAAC;AAVQ,QAAA,SAAS,aAUjB;AAEE,IAAM,gBAAgB,GAAG,UAC9B,cAAmB,EACnB,WAAmB;IAEnB,IAAM,UAAU,GAAG,UACjB,KAAuD,EACvD,GAA2B;QAE3B,OAAO,8BAAC,cAAc,eAAK,KAAK,IAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC1D,CAAC,CAAC;IACF,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;IAErC,OAAO,eAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC,CAAC;AAbW,QAAA,gBAAgB,oBAa3B;AAEF,gDAA8B;AAC9B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-component-lib/utils/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAWnB,IAAM,MAAM,GAAG,UAAC,GAA+D,EAAE,KAAU;IAChG,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QAC7B,GAAG,CAAC,KAAK,CAAC,CAAA;KACX;SAAM,IAAI,GAAG,IAAI,IAAI,EAAE;QACtB,gDAAgD;QAC/C,GAAmC,CAAC,OAAO,GAAG,KAAK,CAAA;KACrD;AACH,CAAC,CAAC;AAPW,QAAA,MAAM,UAOjB;AAEK,IAAM,SAAS,GAAG;IACvB,cAAuE;SAAvE,UAAuE,EAAvE,qBAAuE,EAAvE,IAAuE;QAAvE,yBAAuE;;IAEvE,OAAO,UAAC,KAAU;QAChB,IAAI,CAAC,OAAO,CAAC,UAAA,GAAG;YACd,IAAA,cAAM,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACpB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB;AAEK,IAAM,gBAAgB,GAAG,UAC9B,cAAmB,EACnB,WAAmB;IAEnB,IAAM,UAAU,GAAG,UACjB,KAAuD,EACvD,GAA0C;QAE1C,OAAO,8BAAC,cAAc,eAAK,KAAK,IAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC1D,CAAC,CAAC;IACF,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;IAErC,OAAO,eAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC,CAAC;AAbW,QAAA,gBAAgB,oBAa3B;AAEK,IAAM,mBAAmB,GAAG,UAAC,OAAe,EAAE,aAAkB;IACrE,IACE,aAAa,KAAK,SAAS;QAC3B,OAAO,cAAc,KAAK,WAAW;QACrC,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAC5B;QACA,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;KAC/C;AACH,CAAC,CAAA;AARY,QAAA,mBAAmB,uBAQ/B;AAED,gDAA8B;AAC9B,yCAAuB"}
@@ -6,5 +6,5 @@ interface StencilReactInternalProps<ElementType> extends React.HTMLAttributes<El
6
6
  forwardedRef: React.RefObject<ElementType>;
7
7
  ref?: React.Ref<any>;
8
8
  }
9
- export declare const createReactComponent: <PropType, ElementType extends HTMLStencilElement, ContextStateType = {}, ExpandedPropsTypes = {}>(tagName: string, ReactComponentContext?: React.Context<ContextStateType>, manipulatePropsFunction?: (originalProps: StencilReactInternalProps<ElementType>, propsToPass: any) => ExpandedPropsTypes) => React.ForwardRefExoticComponent<React.PropsWithoutRef<PropType & Omit<React.HTMLAttributes<ElementType>, "style"> & import("./interfaces").StyleReactProps> & React.RefAttributes<ElementType>>;
9
+ export declare const createReactComponent: <PropType, ElementType extends HTMLStencilElement, ContextStateType = {}, ExpandedPropsTypes = {}>(tagName: string, ReactComponentContext?: React.Context<ContextStateType>, manipulatePropsFunction?: (originalProps: StencilReactInternalProps<ElementType>, propsToPass: any) => ExpandedPropsTypes, defineCustomElement?: () => void) => React.ForwardRefExoticComponent<React.PropsWithoutRef<import("./utils").StencilReactExternalProps<PropType, ElementType>> & React.RefAttributes<ElementType>>;
10
10
  export {};
@@ -9,9 +9,12 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import React from 'react';
12
+ import React, { createElement } from 'react';
13
13
  import { attachProps, camelToDashCase, createForwardRef, dashToPascalCase, isCoveredByReact, mergeRefs, } from './utils';
14
- export const createReactComponent = (tagName, ReactComponentContext, manipulatePropsFunction) => {
14
+ export const createReactComponent = (tagName, ReactComponentContext, manipulatePropsFunction, defineCustomElement) => {
15
+ if (defineCustomElement !== undefined) {
16
+ defineCustomElement();
17
+ }
15
18
  const displayName = dashToPascalCase(tagName);
16
19
  const ReactComponent = class extends React.Component {
17
20
  constructor(props) {
@@ -32,7 +35,7 @@ export const createReactComponent = (tagName, ReactComponentContext, manipulateP
32
35
  const value = cProps[name];
33
36
  if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {
34
37
  const eventName = name.substring(2).toLowerCase();
35
- if (typeof document !== 'undefined' && isCoveredByReact(eventName, document)) {
38
+ if (typeof document !== 'undefined' && isCoveredByReact(eventName)) {
36
39
  acc[name] = value;
37
40
  }
38
41
  }
@@ -49,8 +52,15 @@ export const createReactComponent = (tagName, ReactComponentContext, manipulateP
49
52
  if (manipulatePropsFunction) {
50
53
  propsToPass = manipulatePropsFunction(this.props, propsToPass);
51
54
  }
52
- let newProps = Object.assign(Object.assign({}, propsToPass), { ref: mergeRefs(forwardedRef, this.setComponentElRef), style });
53
- return React.createElement(tagName, newProps, children);
55
+ const newProps = Object.assign(Object.assign({}, propsToPass), { ref: mergeRefs(forwardedRef, this.setComponentElRef), style });
56
+ /**
57
+ * We use createElement here instead of
58
+ * React.createElement to work around a
59
+ * bug in Vite (https://github.com/vitejs/vite/issues/6104).
60
+ * React.createElement causes all elements to be rendered
61
+ * as <tagname> instead of the actual Web Component.
62
+ */
63
+ return createElement(tagName, newProps, children);
54
64
  }
55
65
  static get displayName() {
56
66
  return displayName;
@@ -1 +1 @@
1
- {"version":3,"file":"createComponent.js","sourceRoot":"","sources":["../../src/react-component-lib/createComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GACV,MAAM,SAAS,CAAC;AAWjB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAMlC,OAAe,EACf,qBAAuD,EACvD,uBAGuB,EACvB,EAAE;IACF,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,cAAc,GAAG,KAAM,SAAQ,KAAK,CAAC,SAAiD;QAO1F,YAAY,KAA6C;YACvD,KAAK,CAAC,KAAK,CAAC,CAAC;YALf,sBAAiB,GAAG,CAAC,OAAoB,EAAE,EAAE;gBAC3C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC7B,CAAC,CAAC;QAIF,CAAC;QAED,iBAAiB;YACf,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,kBAAkB,CAAC,SAAiD;YAClE,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,MAAM;YACJ,MAAM,KAA+D,IAAI,CAAC,KAAK,EAAzE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAA0B,EAArB,MAAM,cAA1D,yDAA4D,CAAa,CAAC;YAEhF,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,IAAI,EAAE,EAAE;gBAC9D,MAAM,KAAK,GAAI,MAAc,CAAC,IAAI,CAAC,CAAC;gBAEpC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;oBACjE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;oBAElD,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;wBAC5E,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;qBACnB;iBACF;qBAAM;oBACL,yEAAyE;oBACzE,qEAAqE;oBACrE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;oBAE1B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAAE;wBAChE,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;qBACpC;iBACF;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,IAAI,uBAAuB,EAAE;gBAC3B,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;aAChE;YAED,IAAI,QAAQ,mCACP,WAAW,KACd,GAAG,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,EACpD,KAAK,GACN,CAAC;YAEF,OAAO,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,KAAK,WAAW;YACpB,OAAO,WAAW,CAAC;QACrB,CAAC;KACF,CAAC;IAEF,iGAAiG;IACjG,IAAI,qBAAqB,EAAE;QACzB,cAAc,CAAC,WAAW,GAAG,qBAAqB,CAAC;KACpD;IAED,OAAO,gBAAgB,CAAwB,cAAc,EAAE,WAAW,CAAC,CAAC;AAC9E,CAAC,CAAC"}
1
+ {"version":3,"file":"createComponent.js","sourceRoot":"","sources":["../../src/react-component-lib/createComponent.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,GACV,MAAM,SAAS,CAAC;AAWjB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAMlC,OAAe,EACf,qBAAuD,EACvD,uBAGuB,EACvB,mBAAgC,EAChC,EAAE;IACF,IAAI,mBAAmB,KAAK,SAAS,EAAE;QACrC,mBAAmB,EAAE,CAAC;KACvB;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,KAAM,SAAQ,KAAK,CAAC,SAAiD;QAO1F,YAAY,KAA6C;YACvD,KAAK,CAAC,KAAK,CAAC,CAAC;YALf,sBAAiB,GAAG,CAAC,OAAoB,EAAE,EAAE;gBAC3C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC7B,CAAC,CAAC;QAIF,CAAC;QAED,iBAAiB;YACf,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,kBAAkB,CAAC,SAAiD;YAClE,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,MAAM;YACJ,MAAM,KAA+D,IAAI,CAAC,KAAK,EAAzE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAA0B,EAArB,MAAM,cAA1D,yDAA4D,CAAa,CAAC;YAEhF,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,IAAI,EAAE,EAAE;gBAC9D,MAAM,KAAK,GAAI,MAAc,CAAC,IAAI,CAAC,CAAC;gBAEpC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;oBACjE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;oBAClD,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE;wBAClE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;qBACnB;iBACF;qBAAM;oBACL,yEAAyE;oBACzE,qEAAqE;oBACrE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;oBAE1B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,EAAE;wBAChE,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;qBACpC;iBACF;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,IAAI,uBAAuB,EAAE;gBAC3B,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;aAChE;YAED,MAAM,QAAQ,mCACT,WAAW,KACd,GAAG,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,EACpD,KAAK,GACN,CAAC;YAEF;;;;;;eAMG;YACH,OAAO,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,WAAW;YACpB,OAAO,WAAW,CAAC;QACrB,CAAC;KACF,CAAC;IAEF,iGAAiG;IACjG,IAAI,qBAAqB,EAAE;QACzB,cAAc,CAAC,WAAW,GAAG,qBAAqB,CAAC;KACpD;IAED,OAAO,gBAAgB,CAAwB,cAAc,EAAE,WAAW,CAAC,CAAC;AAC9E,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
- import { OverlayEventDetail } from './interfaces';
2
1
  import React from 'react';
2
+ import { OverlayEventDetail } from './interfaces';
3
+ import { StencilReactForwardedRef } from './utils';
3
4
  interface OverlayElement extends HTMLElement {
4
5
  present: () => Promise<void>;
5
6
  dismiss: (data?: any, role?: string | undefined) => Promise<boolean>;
@@ -12,9 +13,9 @@ export interface ReactOverlayProps {
12
13
  onWillDismiss?: (event: CustomEvent<OverlayEventDetail>) => void;
13
14
  onWillPresent?: (event: CustomEvent<OverlayEventDetail>) => void;
14
15
  }
15
- export declare const createOverlayComponent: <OverlayComponent extends object, OverlayType extends OverlayElement>(displayName: string, controller: {
16
+ export declare const createOverlayComponent: <OverlayComponent extends object, OverlayType extends OverlayElement>(tagName: string, controller: {
16
17
  create: (options: any) => Promise<OverlayType>;
17
- }) => React.ForwardRefExoticComponent<React.PropsWithoutRef<OverlayComponent & ReactOverlayProps & {
18
- forwardedRef?: React.RefObject<OverlayType>;
18
+ }, customElement?: any) => React.ForwardRefExoticComponent<React.PropsWithoutRef<OverlayComponent & ReactOverlayProps & {
19
+ forwardedRef?: StencilReactForwardedRef<OverlayType>;
19
20
  }> & React.RefAttributes<OverlayType>>;
20
21
  export {};
@@ -18,18 +18,23 @@ var __rest = (this && this.__rest) || function (s, e) {
18
18
  }
19
19
  return t;
20
20
  };
21
- import React from 'react';
21
+ import React, { Component } from 'react';
22
22
  import ReactDOM from 'react-dom';
23
- import { attachProps } from './utils';
24
- export const createOverlayComponent = (displayName, controller) => {
23
+ import { attachProps, dashToPascalCase, defineCustomElement, setRef, } from './utils';
24
+ export const createOverlayComponent = (tagName, controller, customElement) => {
25
+ defineCustomElement(tagName, customElement);
26
+ const displayName = dashToPascalCase(tagName);
25
27
  const didDismissEventName = `on${displayName}DidDismiss`;
26
28
  const didPresentEventName = `on${displayName}DidPresent`;
27
29
  const willDismissEventName = `on${displayName}WillDismiss`;
28
30
  const willPresentEventName = `on${displayName}WillPresent`;
29
- class Overlay extends React.Component {
31
+ let isDismissing = false;
32
+ class Overlay extends Component {
30
33
  constructor(props) {
31
34
  super(props);
32
- this.el = document.createElement('div');
35
+ if (typeof document !== 'undefined') {
36
+ this.el = document.createElement('div');
37
+ }
33
38
  this.handleDismiss = this.handleDismiss.bind(this);
34
39
  }
35
40
  static get displayName() {
@@ -49,9 +54,14 @@ export const createOverlayComponent = (displayName, controller) => {
49
54
  if (this.props.onDidDismiss) {
50
55
  this.props.onDidDismiss(event);
51
56
  }
52
- if (this.props.forwardedRef) {
53
- this.props.forwardedRef.current = undefined;
57
+ setRef(this.props.forwardedRef, null);
58
+ }
59
+ shouldComponentUpdate(nextProps) {
60
+ // Check if the overlay component is about to dismiss
61
+ if (this.overlay && nextProps.isOpen !== this.props.isOpen && nextProps.isOpen === false) {
62
+ isDismissing = true;
54
63
  }
64
+ return true;
55
65
  }
56
66
  componentDidUpdate(prevProps) {
57
67
  return __awaiter(this, void 0, void 0, function* () {
@@ -63,6 +73,13 @@ export const createOverlayComponent = (displayName, controller) => {
63
73
  }
64
74
  if (this.overlay && prevProps.isOpen !== this.props.isOpen && this.props.isOpen === false) {
65
75
  yield this.overlay.dismiss();
76
+ isDismissing = false;
77
+ /**
78
+ * Now that the overlay is dismissed
79
+ * we need to render again so that any
80
+ * inner components will be unmounted
81
+ */
82
+ this.forceUpdate();
66
83
  }
67
84
  });
68
85
  }
@@ -71,15 +88,18 @@ export const createOverlayComponent = (displayName, controller) => {
71
88
  const _a = this.props, { children, isOpen, onDidDismiss, onDidPresent, onWillDismiss, onWillPresent } = _a, cProps = __rest(_a, ["children", "isOpen", "onDidDismiss", "onDidPresent", "onWillDismiss", "onWillPresent"]);
72
89
  const elementProps = Object.assign(Object.assign({}, cProps), { ref: this.props.forwardedRef, [didDismissEventName]: this.handleDismiss, [didPresentEventName]: (e) => this.props.onDidPresent && this.props.onDidPresent(e), [willDismissEventName]: (e) => this.props.onWillDismiss && this.props.onWillDismiss(e), [willPresentEventName]: (e) => this.props.onWillPresent && this.props.onWillPresent(e) });
73
90
  this.overlay = yield controller.create(Object.assign(Object.assign({}, elementProps), { component: this.el, componentProps: {} }));
74
- if (this.props.forwardedRef) {
75
- this.props.forwardedRef.current = this.overlay;
76
- }
91
+ setRef(this.props.forwardedRef, this.overlay);
77
92
  attachProps(this.overlay, elementProps, prevProps);
78
93
  yield this.overlay.present();
79
94
  });
80
95
  }
81
96
  render() {
82
- return ReactDOM.createPortal(this.props.isOpen ? this.props.children : null, this.el);
97
+ /**
98
+ * Continue to render the component even when
99
+ * overlay is dismissing otherwise component
100
+ * will be hidden before animation is done.
101
+ */
102
+ return ReactDOM.createPortal(this.props.isOpen || isDismissing ? this.props.children : null, this.el);
83
103
  }
84
104
  }
85
105
  return React.forwardRef((props, ref) => {
@@ -1 +1 @@
1
- {"version":3,"file":"createOverlayComponent.js","sourceRoot":"","sources":["../../src/react-component-lib/createOverlayComponent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createOverlayComponent.js","sourceRoot":"","sources":["../../src/react-component-lib/createOverlayComponent.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- declare type ElementWithEvents = Element & {
2
- __events?: Record<string, (e: Event) => any | undefined>;
3
- };
4
1
  export declare const attachProps: (node: HTMLElement, newProps: any, oldProps?: any) => void;
5
2
  export declare const getClassName: (classList: DOMTokenList, newProps: any, oldProps: any) => string;
6
3
  /**
7
4
  * Checks if an event is supported in the current execution environment.
8
5
  * @license Modernizr 3.0.0pre (Custom Build) | MIT
9
6
  */
10
- export declare const isCoveredByReact: (eventNameSuffix: string, doc: Document) => boolean;
11
- export declare const syncEvent: (node: ElementWithEvents, eventName: string, newEventHandler?: (e: Event) => any) => void;
12
- export {};
7
+ export declare const isCoveredByReact: (eventNameSuffix: string) => boolean;
8
+ export declare const syncEvent: (node: Element & {
9
+ __events?: {
10
+ [key: string]: (e: Event) => any;
11
+ };
12
+ }, eventName: string, newEventHandler?: (e: Event) => any) => void;
@@ -1,23 +1,4 @@
1
1
  import { camelToDashCase } from './case';
2
- const cleanupEvents = (node, newProps) => {
3
- if (node.__events == null) {
4
- return;
5
- }
6
- for (var eventName in node.__events) {
7
- if (!node.__events.hasOwnProperty(eventName)) {
8
- continue;
9
- }
10
- const prefixedEventName = `on${eventName[0].toUpperCase()}${eventName.substring(1)}`;
11
- // we should only remove events that are no longer in props
12
- if (newProps[prefixedEventName] != null) {
13
- continue;
14
- }
15
- if (node.__events[eventName]) {
16
- node.removeEventListener(eventName, node.__events[eventName]);
17
- delete node.__events[eventName];
18
- }
19
- }
20
- };
21
2
  export const attachProps = (node, newProps, oldProps = {}) => {
22
3
  // some test frameworks don't render DOM elements, so we test here to make sure we are dealing with DOM first
23
4
  if (node instanceof Element) {
@@ -26,9 +7,6 @@ export const attachProps = (node, newProps, oldProps = {}) => {
26
7
  if (className !== '') {
27
8
  node.className = className;
28
9
  }
29
- // remove any event listeners that do not appear in newProps
30
- // since they are no longer used/wanted by the component
31
- cleanupEvents(node, newProps);
32
10
  Object.keys(newProps).forEach((name) => {
33
11
  if (name === 'children' ||
34
12
  name === 'style' ||
@@ -41,7 +19,7 @@ export const attachProps = (node, newProps, oldProps = {}) => {
41
19
  if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {
42
20
  const eventName = name.substring(2);
43
21
  const eventNameLc = eventName[0].toLowerCase() + eventName.substring(1);
44
- if (typeof document !== 'undefined' && !isCoveredByReact(eventNameLc, document)) {
22
+ if (!isCoveredByReact(eventNameLc)) {
45
23
  syncEvent(node, eventNameLc, newProps[name]);
46
24
  }
47
25
  }
@@ -51,9 +29,6 @@ export const attachProps = (node, newProps, oldProps = {}) => {
51
29
  if (propType === 'string') {
52
30
  node.setAttribute(camelToDashCase(name), newProps[name]);
53
31
  }
54
- else {
55
- node[name] = newProps[name];
56
- }
57
32
  }
58
33
  });
59
34
  }
@@ -86,15 +61,20 @@ export const getClassName = (classList, newProps, oldProps) => {
86
61
  * Checks if an event is supported in the current execution environment.
87
62
  * @license Modernizr 3.0.0pre (Custom Build) | MIT
88
63
  */
89
- export const isCoveredByReact = (eventNameSuffix, doc) => {
90
- const eventName = 'on' + eventNameSuffix;
91
- let isSupported = eventName in doc;
92
- if (!isSupported) {
93
- const element = doc.createElement('div');
94
- element.setAttribute(eventName, 'return;');
95
- isSupported = typeof element[eventName] === 'function';
64
+ export const isCoveredByReact = (eventNameSuffix) => {
65
+ if (typeof document === 'undefined') {
66
+ return true;
67
+ }
68
+ else {
69
+ const eventName = 'on' + eventNameSuffix;
70
+ let isSupported = eventName in document;
71
+ if (!isSupported) {
72
+ const element = document.createElement('div');
73
+ element.setAttribute(eventName, 'return;');
74
+ isSupported = typeof element[eventName] === 'function';
75
+ }
76
+ return isSupported;
96
77
  }
97
- return isSupported;
98
78
  };
99
79
  export const syncEvent = (node, eventName, newEventHandler) => {
100
80
  const eventStore = node.__events || (node.__events = {});
@@ -1 +1 @@
1
- {"version":3,"file":"attachProps.js","sourceRoot":"","sources":["../../../src/react-component-lib/utils/attachProps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachProps.js","sourceRoot":"","sources":["../../../src/react-component-lib/utils/attachProps.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import React from 'react';
2
2
  import type { StyleReactProps } from '../interfaces';
3
3
  export declare type StencilReactExternalProps<PropType, ElementType> = PropType & Omit<React.HTMLAttributes<ElementType>, 'style'> & StyleReactProps;
4
- export declare const mergeRefs: <ElementType>(...refs: React.Ref<ElementType>[]) => (value: ElementType) => void;
5
- export declare const createForwardRef: <PropType, ElementType>(ReactComponent: any, displayName: string) => React.ForwardRefExoticComponent<React.PropsWithoutRef<PropType & Omit<React.HTMLAttributes<ElementType>, "style"> & StyleReactProps> & React.RefAttributes<ElementType>>;
4
+ export declare type StencilReactForwardedRef<T> = ((instance: T | null) => void) | React.MutableRefObject<T | null> | null;
5
+ export declare const setRef: (ref: StencilReactForwardedRef<any> | React.Ref<any> | undefined, value: any) => void;
6
+ export declare const mergeRefs: (...refs: (StencilReactForwardedRef<any> | React.Ref<any> | undefined)[]) => React.RefCallback<any>;
7
+ export declare const createForwardRef: <PropType, ElementType>(ReactComponent: any, displayName: string) => React.ForwardRefExoticComponent<React.PropsWithoutRef<StencilReactExternalProps<PropType, ElementType>> & React.RefAttributes<ElementType>>;
8
+ export declare const defineCustomElement: (tagName: string, customElement: any) => void;
6
9
  export * from './attachProps';
7
10
  export * from './case';
@@ -1,14 +1,20 @@
1
1
  import React from 'react';
2
- // The comma in the type is to trick typescript because it things a single generic in a tsx file is jsx
3
- export const mergeRefs = (...refs) => (value) => refs.forEach((ref) => {
2
+ export const setRef = (ref, value) => {
4
3
  if (typeof ref === 'function') {
5
4
  ref(value);
6
5
  }
7
6
  else if (ref != null) {
8
- // This is typed as readonly so we need to allow for override
7
+ // Cast as a MutableRef so we can assign current
9
8
  ref.current = value;
10
9
  }
11
- });
10
+ };
11
+ export const mergeRefs = (...refs) => {
12
+ return (value) => {
13
+ refs.forEach(ref => {
14
+ setRef(ref, value);
15
+ });
16
+ };
17
+ };
12
18
  export const createForwardRef = (ReactComponent, displayName) => {
13
19
  const forwardRef = (props, ref) => {
14
20
  return React.createElement(ReactComponent, Object.assign({}, props, { forwardedRef: ref }));
@@ -16,6 +22,13 @@ export const createForwardRef = (ReactComponent, displayName) => {
16
22
  forwardRef.displayName = displayName;
17
23
  return React.forwardRef(forwardRef);
18
24
  };
25
+ export const defineCustomElement = (tagName, customElement) => {
26
+ if (customElement !== undefined &&
27
+ typeof customElements !== 'undefined' &&
28
+ !customElements.get(tagName)) {
29
+ customElements.define(tagName, customElement);
30
+ }
31
+ };
19
32
  export * from './attachProps';
20
33
  export * from './case';
21
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-component-lib/utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,uGAAuG;AACvG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAe,GAAG,IAA8B,EAAE,EAAE,CAAC,CAC5E,KAAkB,EAClB,EAAE,CACF,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QAC7B,GAAG,CAAC,KAAK,CAAC,CAAC;KACZ;SAAM,IAAI,GAAG,IAAI,IAAI,EAAE;QACtB,6DAA6D;QAC5D,GAA6C,CAAC,OAAO,GAAG,KAAK,CAAC;KAChE;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,cAAmB,EACnB,WAAmB,EACnB,EAAE;IACF,MAAM,UAAU,GAAG,CACjB,KAAuD,EACvD,GAA2B,EAC3B,EAAE;QACF,OAAO,oBAAC,cAAc,oBAAK,KAAK,IAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC1D,CAAC,CAAC;IACF,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;IAErC,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react-component-lib/utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAA+D,EAAE,KAAU,EAAE,EAAE;IACpG,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;QAC7B,GAAG,CAAC,KAAK,CAAC,CAAA;KACX;SAAM,IAAI,GAAG,IAAI,IAAI,EAAE;QACtB,gDAAgD;QAC/C,GAAmC,CAAC,OAAO,GAAG,KAAK,CAAA;KACrD;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,GAAG,IAAoE,EAC/C,EAAE;IAC1B,OAAO,CAAC,KAAU,EAAE,EAAE;QACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACjB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACpB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,cAAmB,EACnB,WAAmB,EACnB,EAAE;IACF,MAAM,UAAU,GAAG,CACjB,KAAuD,EACvD,GAA0C,EAC1C,EAAE;QACF,OAAO,oBAAC,cAAc,oBAAK,KAAK,IAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAC1D,CAAC,CAAC;IACF,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC;IAErC,OAAO,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,aAAkB,EAAE,EAAE;IACzE,IACE,aAAa,KAAK,SAAS;QAC3B,OAAO,cAAc,KAAK,WAAW;QACrC,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAC5B;QACA,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;KAC/C;AACH,CAAC,CAAA;AAED,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duetds/react",
3
- "version": "5.4.0",
3
+ "version": "6.0.0",
4
4
  "description": "This package includes React specific wrapper for Duet Design System Web Components.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "LocalTapiola Services Ltd <duetdesignsystem@lahitapiola.fi>",
@@ -21,24 +21,24 @@
21
21
  "tsc": "tsc -p ./tsconfig.es2015.json && tsc -p ./tsconfig.commonjs.json"
22
22
  },
23
23
  "dependencies": {
24
- "@duetds/components": "5.4.0"
24
+ "@duetds/components": "6.0.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@stencil/core": "2.15.0",
28
28
  "@types/node": "17.0.21",
29
- "@types/react": "17.0.39",
30
- "@types/react-dom": "17.0.12",
29
+ "@types/react": "18.0.18",
30
+ "@types/react-dom": "18.0.6",
31
31
  "np": "7.6.0",
32
- "react": "17.0.2",
33
- "react-dom": "17.0.2",
32
+ "react": "18.2.0",
33
+ "react-dom": "18.2.0",
34
34
  "typescript": "4.6.2"
35
35
  },
36
36
  "peerDependencies": {
37
- "react": "17.0.2",
38
- "react-dom": "17.0.2"
37
+ "react": "18.2.0",
38
+ "react-dom": "18.2.0"
39
39
  },
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  },
43
- "gitHead": "33b2e4cbba17e0321d007954058c9968e513d9e6"
43
+ "gitHead": "99e2706a742db6a0bf520877202303ab62894d81"
44
44
  }