1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.getOverride = getOverride;
|
7 | exports.getOverrideProps = getOverrideProps;
|
8 | exports.toObjectOverride = toObjectOverride;
|
9 | exports.getOverrides = getOverrides;
|
10 | exports.mergeOverrides = mergeOverrides;
|
11 | exports.mergeOverride = mergeOverride;
|
12 | exports.mergeConfigurationOverrides = mergeConfigurationOverrides;
|
13 |
|
14 | var React = _interopRequireWildcard(require("react"));
|
15 |
|
16 | var _reactIs = require("react-is");
|
17 |
|
18 | var _deepMerge = _interopRequireDefault(require("../utils/deep-merge.js"));
|
19 |
|
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21 |
|
22 | function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
23 |
|
24 | function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
25 |
|
26 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
27 |
|
28 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
29 |
|
30 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
31 |
|
32 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
33 |
|
34 | function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 | function getOverride(override) {
|
41 | if ((0, _reactIs.isValidElementType)(override)) {
|
42 | return override;
|
43 | }
|
44 |
|
45 |
|
46 | if (override && _typeof(override) === 'object') {
|
47 |
|
48 |
|
49 |
|
50 | return override.component;
|
51 | }
|
52 |
|
53 |
|
54 | return override;
|
55 | }
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 | function getOverrideProps(override) {
|
63 | if (override && _typeof(override) === 'object') {
|
64 | if (_typeof(override.props) === 'object') {
|
65 | return _objectSpread({}, override.props, {
|
66 | $style: override.style
|
67 | });
|
68 | } else {
|
69 | return {
|
70 | $style: override.style
|
71 | };
|
72 | }
|
73 | }
|
74 |
|
75 | return {};
|
76 | }
|
77 |
|
78 |
|
79 |
|
80 |
|
81 |
|
82 |
|
83 | function toObjectOverride(override) {
|
84 | if ((0, _reactIs.isValidElementType)(override)) {
|
85 | return {
|
86 |
|
87 | component: override
|
88 | };
|
89 | }
|
90 |
|
91 |
|
92 |
|
93 |
|
94 |
|
95 | return override || {};
|
96 | }
|
97 |
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 |
|
104 | function getOverrides(override, defaultComponent) {
|
105 | var Component = getOverride(override) || defaultComponent;
|
106 |
|
107 | if (override && _typeof(override) === 'object' && typeof override.props === 'function') {
|
108 |
|
109 | if (process.env.NODE_ENV !== "production") {
|
110 | console.warn('baseui:Overrides Props as a function will be removed in the next major version.');
|
111 | }
|
112 |
|
113 | var DynamicOverride = React.forwardRef(function (props, ref) {
|
114 | var mappedProps = override.props(props);
|
115 | var nextProps = getOverrideProps(_objectSpread({}, override, {
|
116 | props: mappedProps
|
117 | }));
|
118 | return React.createElement(Component, _extends({
|
119 | ref: ref
|
120 | }, nextProps));
|
121 | });
|
122 | DynamicOverride.displayName = Component.displayName;
|
123 | return [DynamicOverride, {}];
|
124 | }
|
125 |
|
126 | var props = getOverrideProps(override);
|
127 | return [Component, props];
|
128 | }
|
129 |
|
130 |
|
131 |
|
132 |
|
133 |
|
134 |
|
135 |
|
136 |
|
137 |
|
138 | function mergeOverrides() {
|
139 | var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
140 | var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
141 | var merged = Object.assign({}, target, source);
|
142 | var allIdentifiers = Object.keys(merged);
|
143 |
|
144 | return allIdentifiers.reduce(function (acc, name) {
|
145 | acc[name] = mergeOverride(toObjectOverride(target[name]), toObjectOverride(source[name]));
|
146 | return acc;
|
147 | }, {});
|
148 | }
|
149 |
|
150 |
|
151 |
|
152 |
|
153 |
|
154 |
|
155 |
|
156 | function mergeOverride(target, source) {
|
157 |
|
158 | var merged = _objectSpread({}, target, {}, source);
|
159 |
|
160 | if (target.props && source.props) {
|
161 | merged.props = mergeConfigurationOverrides(target.props, source.props);
|
162 | }
|
163 |
|
164 | if (target.style && source.style) {
|
165 | merged.style = mergeConfigurationOverrides(target.style, source.style);
|
166 | }
|
167 |
|
168 | return merged;
|
169 | }
|
170 |
|
171 |
|
172 |
|
173 |
|
174 |
|
175 |
|
176 |
|
177 | function mergeConfigurationOverrides(target, source) {
|
178 |
|
179 | if (_typeof(target) === 'object' && _typeof(source) === 'object') {
|
180 | return (0, _deepMerge.default)({}, target, source);
|
181 | }
|
182 |
|
183 |
|
184 | return function () {
|
185 | return (0, _deepMerge.default)({}, typeof target === 'function' ? target.apply(void 0, arguments) : target, typeof source === 'function' ? source.apply(void 0, arguments) : source);
|
186 | };
|
187 | } |
\ | No newline at end of file |