| @@ -1,1301 +1 @@ | ||
| 1 | -/******/ (function() { // webpackBootstrap | |
| 2 | -/******/ "use strict"; | |
| 3 | -/******/ // The require scope | |
| 4 | -/******/ var __webpack_require__ = {}; | |
| 5 | -/******/ | |
| 6 | -/************************************************************************/ | |
| 7 | -/******/ /* webpack/runtime/define property getters */ | |
| 8 | -/******/ !function() { | |
| 9 | -/******/ // define getter functions for harmony exports | |
| 10 | -/******/ __webpack_require__.d = function(exports, definition) { | |
| 11 | -/******/ for(var key in definition) { | |
| 12 | -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { | |
| 13 | -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); | |
| 14 | -/******/ } | |
| 15 | -/******/ } | |
| 16 | -/******/ }; | |
| 17 | -/******/ }(); | |
| 18 | -/******/ | |
| 19 | -/******/ /* webpack/runtime/hasOwnProperty shorthand */ | |
| 20 | -/******/ !function() { | |
| 21 | -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } | |
| 22 | -/******/ }(); | |
| 23 | -/******/ | |
| 24 | -/******/ /* webpack/runtime/make namespace object */ | |
| 25 | -/******/ !function() { | |
| 26 | -/******/ // define __esModule on exports | |
| 27 | -/******/ __webpack_require__.r = function(exports) { | |
| 28 | -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | |
| 29 | -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | |
| 30 | -/******/ } | |
| 31 | -/******/ Object.defineProperty(exports, '__esModule', { value: true }); | |
| 32 | -/******/ }; | |
| 33 | -/******/ }(); | |
| 34 | -/******/ | |
| 35 | -/************************************************************************/ | |
| 36 | -var __webpack_exports__ = {}; | |
| 37 | -// ESM COMPAT FLAG | |
| 38 | -__webpack_require__.r(__webpack_exports__); | |
| 39 | - | |
| 40 | -// EXPORTS | |
| 41 | -__webpack_require__.d(__webpack_exports__, { | |
| 42 | - "Children": function() { return /* reexport */ external_React_namespaceObject.Children; }, | |
| 43 | - "Component": function() { return /* reexport */ external_React_namespaceObject.Component; }, | |
| 44 | - "Fragment": function() { return /* reexport */ external_React_namespaceObject.Fragment; }, | |
| 45 | - "Platform": function() { return /* reexport */ platform; }, | |
| 46 | - "RawHTML": function() { return /* reexport */ RawHTML; }, | |
| 47 | - "StrictMode": function() { return /* reexport */ external_React_namespaceObject.StrictMode; }, | |
| 48 | - "Suspense": function() { return /* reexport */ external_React_namespaceObject.Suspense; }, | |
| 49 | - "cloneElement": function() { return /* reexport */ external_React_namespaceObject.cloneElement; }, | |
| 50 | - "concatChildren": function() { return /* reexport */ concatChildren; }, | |
| 51 | - "createContext": function() { return /* reexport */ external_React_namespaceObject.createContext; }, | |
| 52 | - "createElement": function() { return /* reexport */ external_React_namespaceObject.createElement; }, | |
| 53 | - "createInterpolateElement": function() { return /* reexport */ create_interpolate_element; }, | |
| 54 | - "createPortal": function() { return /* reexport */ external_ReactDOM_namespaceObject.createPortal; }, | |
| 55 | - "createRef": function() { return /* reexport */ external_React_namespaceObject.createRef; }, | |
| 56 | - "findDOMNode": function() { return /* reexport */ external_ReactDOM_namespaceObject.findDOMNode; }, | |
| 57 | - "forwardRef": function() { return /* reexport */ external_React_namespaceObject.forwardRef; }, | |
| 58 | - "isEmptyElement": function() { return /* reexport */ isEmptyElement; }, | |
| 59 | - "isValidElement": function() { return /* reexport */ external_React_namespaceObject.isValidElement; }, | |
| 60 | - "lazy": function() { return /* reexport */ external_React_namespaceObject.lazy; }, | |
| 61 | - "memo": function() { return /* reexport */ external_React_namespaceObject.memo; }, | |
| 62 | - "render": function() { return /* reexport */ external_ReactDOM_namespaceObject.render; }, | |
| 63 | - "renderToString": function() { return /* reexport */ serialize; }, | |
| 64 | - "switchChildrenNodeName": function() { return /* reexport */ switchChildrenNodeName; }, | |
| 65 | - "unmountComponentAtNode": function() { return /* reexport */ external_ReactDOM_namespaceObject.unmountComponentAtNode; }, | |
| 66 | - "useCallback": function() { return /* reexport */ external_React_namespaceObject.useCallback; }, | |
| 67 | - "useContext": function() { return /* reexport */ external_React_namespaceObject.useContext; }, | |
| 68 | - "useDebugValue": function() { return /* reexport */ external_React_namespaceObject.useDebugValue; }, | |
| 69 | - "useEffect": function() { return /* reexport */ external_React_namespaceObject.useEffect; }, | |
| 70 | - "useImperativeHandle": function() { return /* reexport */ external_React_namespaceObject.useImperativeHandle; }, | |
| 71 | - "useLayoutEffect": function() { return /* reexport */ external_React_namespaceObject.useLayoutEffect; }, | |
| 72 | - "useMemo": function() { return /* reexport */ external_React_namespaceObject.useMemo; }, | |
| 73 | - "useReducer": function() { return /* reexport */ external_React_namespaceObject.useReducer; }, | |
| 74 | - "useRef": function() { return /* reexport */ external_React_namespaceObject.useRef; }, | |
| 75 | - "useState": function() { return /* reexport */ external_React_namespaceObject.useState; } | |
| 76 | -}); | |
| 77 | - | |
| 78 | -;// CONCATENATED MODULE: external "React" | |
| 79 | -var external_React_namespaceObject = window["React"]; | |
| 80 | -;// CONCATENATED MODULE: ./packages/element/build-module/create-interpolate-element.js | |
| 81 | -/** | |
| 82 | - * Internal dependencies | |
| 83 | - */ | |
| 84 | - | |
| 85 | -/** @typedef {import('./react').WPElement} WPElement */ | |
| 86 | - | |
| 87 | -let indoc, offset, output, stack; | |
| 88 | -/** | |
| 89 | - * Matches tags in the localized string | |
| 90 | - * | |
| 91 | - * This is used for extracting the tag pattern groups for parsing the localized | |
| 92 | - * string and along with the map converting it to a react element. | |
| 93 | - * | |
| 94 | - * There are four references extracted using this tokenizer: | |
| 95 | - * | |
| 96 | - * match: Full match of the tag (i.e. <strong>, </strong>, <br/>) | |
| 97 | - * isClosing: The closing slash, it it exists. | |
| 98 | - * name: The name portion of the tag (strong, br) (if ) | |
| 99 | - * isSelfClosed: The slash on a self closing tag, if it exists. | |
| 100 | - * | |
| 101 | - * @type {RegExp} | |
| 102 | - */ | |
| 103 | - | |
| 104 | -const tokenizer = /<(\/)?(\w+)\s*(\/)?>/g; | |
| 105 | -/** | |
| 106 | - * The stack frame tracking parse progress. | |
| 107 | - * | |
| 108 | - * @typedef Frame | |
| 109 | - * | |
| 110 | - * @property {WPElement} element A parent element which may still have | |
| 111 | - * @property {number} tokenStart Offset at which parent element first | |
| 112 | - * appears. | |
| 113 | - * @property {number} tokenLength Length of string marking start of parent | |
| 114 | - * element. | |
| 115 | - * @property {number} [prevOffset] Running offset at which parsing should | |
| 116 | - * continue. | |
| 117 | - * @property {number} [leadingTextStart] Offset at which last closing element | |
| 118 | - * finished, used for finding text between | |
| 119 | - * elements. | |
| 120 | - * @property {WPElement[]} children Children. | |
| 121 | - */ | |
| 122 | - | |
| 123 | -/** | |
| 124 | - * Tracks recursive-descent parse state. | |
| 125 | - * | |
| 126 | - * This is a Stack frame holding parent elements until all children have been | |
| 127 | - * parsed. | |
| 128 | - * | |
| 129 | - * @private | |
| 130 | - * @param {WPElement} element A parent element which may still have | |
| 131 | - * nested children not yet parsed. | |
| 132 | - * @param {number} tokenStart Offset at which parent element first | |
| 133 | - * appears. | |
| 134 | - * @param {number} tokenLength Length of string marking start of parent | |
| 135 | - * element. | |
| 136 | - * @param {number} [prevOffset] Running offset at which parsing should | |
| 137 | - * continue. | |
| 138 | - * @param {number} [leadingTextStart] Offset at which last closing element | |
| 139 | - * finished, used for finding text between | |
| 140 | - * elements. | |
| 141 | - * | |
| 142 | - * @return {Frame} The stack frame tracking parse progress. | |
| 143 | - */ | |
| 144 | - | |
| 145 | -function createFrame(element, tokenStart, tokenLength, prevOffset, leadingTextStart) { | |
| 146 | - return { | |
| 147 | - element, | |
| 148 | - tokenStart, | |
| 149 | - tokenLength, | |
| 150 | - prevOffset, | |
| 151 | - leadingTextStart, | |
| 152 | - children: [] | |
| 153 | - }; | |
| 154 | -} | |
| 155 | -/** | |
| 156 | - * This function creates an interpolated element from a passed in string with | |
| 157 | - * specific tags matching how the string should be converted to an element via | |
| 158 | - * the conversion map value. | |
| 159 | - * | |
| 160 | - * @example | |
| 161 | - * For example, for the given string: | |
| 162 | - * | |
| 163 | - * "This is a <span>string</span> with <a>a link</a> and a self-closing | |
| 164 | - * <CustomComponentB/> tag" | |
| 165 | - * | |
| 166 | - * You would have something like this as the conversionMap value: | |
| 167 | - * | |
| 168 | - * ```js | |
| 169 | - * { | |
| 170 | - * span: <span />, | |
| 171 | - * a: <a href={ 'https://github.com' } />, | |
| 172 | - * CustomComponentB: <CustomComponent />, | |
| 173 | - * } | |
| 174 | - * ``` | |
| 175 | - * | |
| 176 | - * @param {string} interpolatedString The interpolation string to be parsed. | |
| 177 | - * @param {Object} conversionMap The map used to convert the string to | |
| 178 | - * a react element. | |
| 179 | - * @throws {TypeError} | |
| 180 | - * @return {WPElement} A wp element. | |
| 181 | - */ | |
| 182 | - | |
| 183 | - | |
| 184 | -const createInterpolateElement = (interpolatedString, conversionMap) => { | |
| 185 | - indoc = interpolatedString; | |
| 186 | - offset = 0; | |
| 187 | - output = []; | |
| 188 | - stack = []; | |
| 189 | - tokenizer.lastIndex = 0; | |
| 190 | - | |
| 191 | - if (!isValidConversionMap(conversionMap)) { | |
| 192 | - throw new TypeError('The conversionMap provided is not valid. It must be an object with values that are WPElements'); | |
| 193 | - } | |
| 194 | - | |
| 195 | - do {// twiddle our thumbs | |
| 196 | - } while (proceed(conversionMap)); | |
| 197 | - | |
| 198 | - return (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, ...output); | |
| 199 | -}; | |
| 200 | -/** | |
| 201 | - * Validate conversion map. | |
| 202 | - * | |
| 203 | - * A map is considered valid if it's an object and every value in the object | |
| 204 | - * is a WPElement | |
| 205 | - * | |
| 206 | - * @private | |
| 207 | - * | |
| 208 | - * @param {Object} conversionMap The map being validated. | |
| 209 | - * | |
| 210 | - * @return {boolean} True means the map is valid. | |
| 211 | - */ | |
| 212 | - | |
| 213 | - | |
| 214 | -const isValidConversionMap = conversionMap => { | |
| 215 | - const isObject = typeof conversionMap === 'object'; | |
| 216 | - const values = isObject && Object.values(conversionMap); | |
| 217 | - return isObject && values.length && values.every(element => (0,external_React_namespaceObject.isValidElement)(element)); | |
| 218 | -}; | |
| 219 | -/** | |
| 220 | - * This is the iterator over the matches in the string. | |
| 221 | - * | |
| 222 | - * @private | |
| 223 | - * | |
| 224 | - * @param {Object} conversionMap The conversion map for the string. | |
| 225 | - * | |
| 226 | - * @return {boolean} true for continuing to iterate, false for finished. | |
| 227 | - */ | |
| 228 | - | |
| 229 | - | |
| 230 | -function proceed(conversionMap) { | |
| 231 | - const next = nextToken(); | |
| 232 | - const [tokenType, name, startOffset, tokenLength] = next; | |
| 233 | - const stackDepth = stack.length; | |
| 234 | - const leadingTextStart = startOffset > offset ? offset : null; | |
| 235 | - | |
| 236 | - if (!conversionMap[name]) { | |
| 237 | - addText(); | |
| 238 | - return false; | |
| 239 | - } | |
| 240 | - | |
| 241 | - switch (tokenType) { | |
| 242 | - case 'no-more-tokens': | |
| 243 | - if (stackDepth !== 0) { | |
| 244 | - const { | |
| 245 | - leadingTextStart: stackLeadingText, | |
| 246 | - tokenStart | |
| 247 | - } = stack.pop(); | |
| 248 | - output.push(indoc.substr(stackLeadingText, tokenStart)); | |
| 249 | - } | |
| 250 | - | |
| 251 | - addText(); | |
| 252 | - return false; | |
| 253 | - | |
| 254 | - case 'self-closed': | |
| 255 | - if (0 === stackDepth) { | |
| 256 | - if (null !== leadingTextStart) { | |
| 257 | - output.push(indoc.substr(leadingTextStart, startOffset - leadingTextStart)); | |
| 258 | - } | |
| 259 | - | |
| 260 | - output.push(conversionMap[name]); | |
| 261 | - offset = startOffset + tokenLength; | |
| 262 | - return true; | |
| 263 | - } // otherwise we found an inner element | |
| 264 | - | |
| 265 | - | |
| 266 | - addChild(createFrame(conversionMap[name], startOffset, tokenLength)); | |
| 267 | - offset = startOffset + tokenLength; | |
| 268 | - return true; | |
| 269 | - | |
| 270 | - case 'opener': | |
| 271 | - stack.push(createFrame(conversionMap[name], startOffset, tokenLength, startOffset + tokenLength, leadingTextStart)); | |
| 272 | - offset = startOffset + tokenLength; | |
| 273 | - return true; | |
| 274 | - | |
| 275 | - case 'closer': | |
| 276 | - // if we're not nesting then this is easy - close the block | |
| 277 | - if (1 === stackDepth) { | |
| 278 | - closeOuterElement(startOffset); | |
| 279 | - offset = startOffset + tokenLength; | |
| 280 | - return true; | |
| 281 | - } // otherwise we're nested and we have to close out the current | |
| 282 | - // block and add it as a innerBlock to the parent | |
| 283 | - | |
| 284 | - | |
| 285 | - const stackTop = stack.pop(); | |
| 286 | - const text = indoc.substr(stackTop.prevOffset, startOffset - stackTop.prevOffset); | |
| 287 | - stackTop.children.push(text); | |
| 288 | - stackTop.prevOffset = startOffset + tokenLength; | |
| 289 | - const frame = createFrame(stackTop.element, stackTop.tokenStart, stackTop.tokenLength, startOffset + tokenLength); | |
| 290 | - frame.children = stackTop.children; | |
| 291 | - addChild(frame); | |
| 292 | - offset = startOffset + tokenLength; | |
| 293 | - return true; | |
| 294 | - | |
| 295 | - default: | |
| 296 | - addText(); | |
| 297 | - return false; | |
| 298 | - } | |
| 299 | -} | |
| 300 | -/** | |
| 301 | - * Grabs the next token match in the string and returns it's details. | |
| 302 | - * | |
| 303 | - * @private | |
| 304 | - * | |
| 305 | - * @return {Array} An array of details for the token matched. | |
| 306 | - */ | |
| 307 | - | |
| 308 | - | |
| 309 | -function nextToken() { | |
| 310 | - const matches = tokenizer.exec(indoc); // we have no more tokens | |
| 311 | - | |
| 312 | - if (null === matches) { | |
| 313 | - return ['no-more-tokens']; | |
| 314 | - } | |
| 315 | - | |
| 316 | - const startedAt = matches.index; | |
| 317 | - const [match, isClosing, name, isSelfClosed] = matches; | |
| 318 | - const length = match.length; | |
| 319 | - | |
| 320 | - if (isSelfClosed) { | |
| 321 | - return ['self-closed', name, startedAt, length]; | |
| 322 | - } | |
| 323 | - | |
| 324 | - if (isClosing) { | |
| 325 | - return ['closer', name, startedAt, length]; | |
| 326 | - } | |
| 327 | - | |
| 328 | - return ['opener', name, startedAt, length]; | |
| 329 | -} | |
| 330 | -/** | |
| 331 | - * Pushes text extracted from the indoc string to the output stack given the | |
| 332 | - * current rawLength value and offset (if rawLength is provided ) or the | |
| 333 | - * indoc.length and offset. | |
| 334 | - * | |
| 335 | - * @private | |
| 336 | - */ | |
| 337 | - | |
| 338 | - | |
| 339 | -function addText() { | |
| 340 | - const length = indoc.length - offset; | |
| 341 | - | |
| 342 | - if (0 === length) { | |
| 343 | - return; | |
| 344 | - } | |
| 345 | - | |
| 346 | - output.push(indoc.substr(offset, length)); | |
| 347 | -} | |
| 348 | -/** | |
| 349 | - * Pushes a child element to the associated parent element's children for the | |
| 350 | - * parent currently active in the stack. | |
| 351 | - * | |
| 352 | - * @private | |
| 353 | - * | |
| 354 | - * @param {Frame} frame The Frame containing the child element and it's | |
| 355 | - * token information. | |
| 356 | - */ | |
| 357 | - | |
| 358 | - | |
| 359 | -function addChild(frame) { | |
| 360 | - const { | |
| 361 | - element, | |
| 362 | - tokenStart, | |
| 363 | - tokenLength, | |
| 364 | - prevOffset, | |
| 365 | - children | |
| 366 | - } = frame; | |
| 367 | - const parent = stack[stack.length - 1]; | |
| 368 | - const text = indoc.substr(parent.prevOffset, tokenStart - parent.prevOffset); | |
| 369 | - | |
| 370 | - if (text) { | |
| 371 | - parent.children.push(text); | |
| 372 | - } | |
| 373 | - | |
| 374 | - parent.children.push((0,external_React_namespaceObject.cloneElement)(element, null, ...children)); | |
| 375 | - parent.prevOffset = prevOffset ? prevOffset : tokenStart + tokenLength; | |
| 376 | -} | |
| 377 | -/** | |
| 378 | - * This is called for closing tags. It creates the element currently active in | |
| 379 | - * the stack. | |
| 380 | - * | |
| 381 | - * @private | |
| 382 | - * | |
| 383 | - * @param {number} endOffset Offset at which the closing tag for the element | |
| 384 | - * begins in the string. If this is greater than the | |
| 385 | - * prevOffset attached to the element, then this | |
| 386 | - * helps capture any remaining nested text nodes in | |
| 387 | - * the element. | |
| 388 | - */ | |
| 389 | - | |
| 390 | - | |
| 391 | -function closeOuterElement(endOffset) { | |
| 392 | - const { | |
| 393 | - element, | |
| 394 | - leadingTextStart, | |
| 395 | - prevOffset, | |
| 396 | - tokenStart, | |
| 397 | - children | |
| 398 | - } = stack.pop(); | |
| 399 | - const text = endOffset ? indoc.substr(prevOffset, endOffset - prevOffset) : indoc.substr(prevOffset); | |
| 400 | - | |
| 401 | - if (text) { | |
| 402 | - children.push(text); | |
| 403 | - } | |
| 404 | - | |
| 405 | - if (null !== leadingTextStart) { | |
| 406 | - output.push(indoc.substr(leadingTextStart, tokenStart - leadingTextStart)); | |
| 407 | - } | |
| 408 | - | |
| 409 | - output.push((0,external_React_namespaceObject.cloneElement)(element, null, ...children)); | |
| 410 | -} | |
| 411 | - | |
| 412 | -/* harmony default export */ var create_interpolate_element = (createInterpolateElement); | |
| 413 | -//# sourceMappingURL=create-interpolate-element.js.map | |
| 414 | -;// CONCATENATED MODULE: external "lodash" | |
| 415 | -var external_lodash_namespaceObject = window["lodash"]; | |
| 416 | -;// CONCATENATED MODULE: ./packages/element/build-module/react.js | |
| 417 | -/** | |
| 418 | - * External dependencies | |
| 419 | - */ | |
| 420 | -// eslint-disable-next-line @typescript-eslint/no-restricted-imports | |
| 421 | - | |
| 422 | - | |
| 423 | -/** | |
| 424 | - * Object containing a React element. | |
| 425 | - * | |
| 426 | - * @typedef {import('react').ReactElement} WPElement | |
| 427 | - */ | |
| 428 | - | |
| 429 | -/** | |
| 430 | - * Object containing a React component. | |
| 431 | - * | |
| 432 | - * @typedef {import('react').ComponentType} WPComponent | |
| 433 | - */ | |
| 434 | - | |
| 435 | -/** | |
| 436 | - * Object containing a React synthetic event. | |
| 437 | - * | |
| 438 | - * @typedef {import('react').SyntheticEvent} WPSyntheticEvent | |
| 439 | - */ | |
| 440 | - | |
| 441 | -/** | |
| 442 | - * Object that provides utilities for dealing with React children. | |
| 443 | - */ | |
| 444 | - | |
| 445 | - | |
| 446 | -/** | |
| 447 | - * Creates a copy of an element with extended props. | |
| 448 | - * | |
| 449 | - * @param {WPElement} element Element | |
| 450 | - * @param {?Object} props Props to apply to cloned element | |
| 451 | - * | |
| 452 | - * @return {WPElement} Cloned element. | |
| 453 | - */ | |
| 454 | - | |
| 455 | - | |
| 456 | -/** | |
| 457 | - * A base class to create WordPress Components (Refs, state and lifecycle hooks) | |
| 458 | - */ | |
| 459 | - | |
| 460 | - | |
| 461 | -/** | |
| 462 | - * Creates a context object containing two components: a provider and consumer. | |
| 463 | - * | |
| 464 | - * @param {Object} defaultValue A default data stored in the context. | |
| 465 | - * | |
| 466 | - * @return {Object} Context object. | |
| 467 | - */ | |
| 468 | - | |
| 469 | - | |
| 470 | -/** | |
| 471 | - * Returns a new element of given type. Type can be either a string tag name or | |
| 472 | - * another function which itself returns an element. | |
| 473 | - * | |
| 474 | - * @param {?(string|Function)} type Tag name or element creator | |
| 475 | - * @param {Object} props Element properties, either attribute | |
| 476 | - * set to apply to DOM node or values to | |
| 477 | - * pass through to element creator | |
| 478 | - * @param {...WPElement} children Descendant elements | |
| 479 | - * | |
| 480 | - * @return {WPElement} Element. | |
| 481 | - */ | |
| 482 | - | |
| 483 | - | |
| 484 | -/** | |
| 485 | - * Returns an object tracking a reference to a rendered element via its | |
| 486 | - * `current` property as either a DOMElement or Element, dependent upon the | |
| 487 | - * type of element rendered with the ref attribute. | |
| 488 | - * | |
| 489 | - * @return {Object} Ref object. | |
| 490 | - */ | |
| 491 | - | |
| 492 | - | |
| 493 | -/** | |
| 494 | - * Component enhancer used to enable passing a ref to its wrapped component. | |
| 495 | - * Pass a function argument which receives `props` and `ref` as its arguments, | |
| 496 | - * returning an element using the forwarded ref. The return value is a new | |
| 497 | - * component which forwards its ref. | |
| 498 | - * | |
| 499 | - * @param {Function} forwarder Function passed `props` and `ref`, expected to | |
| 500 | - * return an element. | |
| 501 | - * | |
| 502 | - * @return {WPComponent} Enhanced component. | |
| 503 | - */ | |
| 504 | - | |
| 505 | - | |
| 506 | -/** | |
| 507 | - * A component which renders its children without any wrapping element. | |
| 508 | - */ | |
| 509 | - | |
| 510 | - | |
| 511 | -/** | |
| 512 | - * Checks if an object is a valid WPElement. | |
| 513 | - * | |
| 514 | - * @param {Object} objectToCheck The object to be checked. | |
| 515 | - * | |
| 516 | - * @return {boolean} true if objectToTest is a valid WPElement and false otherwise. | |
| 517 | - */ | |
| 518 | - | |
| 519 | - | |
| 520 | -/** | |
| 521 | - * @see https://reactjs.org/docs/react-api.html#reactmemo | |
| 522 | - */ | |
| 523 | - | |
| 524 | - | |
| 525 | -/** | |
| 526 | - * Component that activates additional checks and warnings for its descendants. | |
| 527 | - */ | |
| 528 | - | |
| 529 | - | |
| 530 | -/** | |
| 531 | - * @see https://reactjs.org/docs/hooks-reference.html#usecallback | |
| 532 | - */ | |
| 533 | - | |
| 534 | - | |
| 535 | -/** | |
| 536 | - * @see https://reactjs.org/docs/hooks-reference.html#usecontext | |
| 537 | - */ | |
| 538 | - | |
| 539 | - | |
| 540 | -/** | |
| 541 | - * @see https://reactjs.org/docs/hooks-reference.html#usedebugvalue | |
| 542 | - */ | |
| 543 | - | |
| 544 | - | |
| 545 | -/** | |
| 546 | - * @see https://reactjs.org/docs/hooks-reference.html#useeffect | |
| 547 | - */ | |
| 548 | - | |
| 549 | - | |
| 550 | -/** | |
| 551 | - * @see https://reactjs.org/docs/hooks-reference.html#useimperativehandle | |
| 552 | - */ | |
| 553 | - | |
| 554 | - | |
| 555 | -/** | |
| 556 | - * @see https://reactjs.org/docs/hooks-reference.html#uselayouteffect | |
| 557 | - */ | |
| 558 | - | |
| 559 | - | |
| 560 | -/** | |
| 561 | - * @see https://reactjs.org/docs/hooks-reference.html#usememo | |
| 562 | - */ | |
| 563 | - | |
| 564 | - | |
| 565 | -/** | |
| 566 | - * @see https://reactjs.org/docs/hooks-reference.html#usereducer | |
| 567 | - */ | |
| 568 | - | |
| 569 | - | |
| 570 | -/** | |
| 571 | - * @see https://reactjs.org/docs/hooks-reference.html#useref | |
| 572 | - */ | |
| 573 | - | |
| 574 | - | |
| 575 | -/** | |
| 576 | - * @see https://reactjs.org/docs/hooks-reference.html#usestate | |
| 577 | - */ | |
| 578 | - | |
| 579 | - | |
| 580 | -/** | |
| 581 | - * @see https://reactjs.org/docs/react-api.html#reactlazy | |
| 582 | - */ | |
| 583 | - | |
| 584 | - | |
| 585 | -/** | |
| 586 | - * @see https://reactjs.org/docs/react-api.html#reactsuspense | |
| 587 | - */ | |
| 588 | - | |
| 589 | - | |
| 590 | -/** | |
| 591 | - * Concatenate two or more React children objects. | |
| 592 | - * | |
| 593 | - * @param {...?Object} childrenArguments Array of children arguments (array of arrays/strings/objects) to concatenate. | |
| 594 | - * | |
| 595 | - * @return {Array} The concatenated value. | |
| 596 | - */ | |
| 597 | - | |
| 598 | -function concatChildren() { | |
| 599 | - for (var _len = arguments.length, childrenArguments = new Array(_len), _key = 0; _key < _len; _key++) { | |
| 600 | - childrenArguments[_key] = arguments[_key]; | |
| 601 | - } | |
| 602 | - | |
| 603 | - return childrenArguments.reduce((accumulator, children, i) => { | |
| 604 | - external_React_namespaceObject.Children.forEach(children, (child, j) => { | |
| 605 | - if (child && 'string' !== typeof child) { | |
| 606 | - child = (0,external_React_namespaceObject.cloneElement)(child, { | |
| 607 | - key: [i, j].join() | |
| 608 | - }); | |
| 609 | - } | |
| 610 | - | |
| 611 | - accumulator.push(child); | |
| 612 | - }); | |
| 613 | - return accumulator; | |
| 614 | - }, []); | |
| 615 | -} | |
| 616 | -/** | |
| 617 | - * Switches the nodeName of all the elements in the children object. | |
| 618 | - * | |
| 619 | - * @param {?Object} children Children object. | |
| 620 | - * @param {string} nodeName Node name. | |
| 621 | - * | |
| 622 | - * @return {?Object} The updated children object. | |
| 623 | - */ | |
| 624 | - | |
| 625 | -function switchChildrenNodeName(children, nodeName) { | |
| 626 | - return children && external_React_namespaceObject.Children.map(children, (elt, index) => { | |
| 627 | - if ((0,external_lodash_namespaceObject.isString)(elt)) { | |
| 628 | - return (0,external_React_namespaceObject.createElement)(nodeName, { | |
| 629 | - key: index | |
| 630 | - }, elt); | |
| 631 | - } | |
| 632 | - | |
| 633 | - const { | |
| 634 | - children: childrenProp, | |
| 635 | - ...props | |
| 636 | - } = elt.props; | |
| 637 | - return (0,external_React_namespaceObject.createElement)(nodeName, { | |
| 638 | - key: index, | |
| 639 | - ...props | |
| 640 | - }, childrenProp); | |
| 641 | - }); | |
| 642 | -} | |
| 643 | -//# sourceMappingURL=react.js.map | |
| 644 | -;// CONCATENATED MODULE: external "ReactDOM" | |
| 645 | -var external_ReactDOM_namespaceObject = window["ReactDOM"]; | |
| 646 | -;// CONCATENATED MODULE: ./packages/element/build-module/react-platform.js | |
| 647 | -/** | |
| 648 | - * External dependencies | |
| 649 | - */ | |
| 650 | - | |
| 651 | -/** | |
| 652 | - * Creates a portal into which a component can be rendered. | |
| 653 | - * | |
| 654 | - * @see https://github.com/facebook/react/issues/10309#issuecomment-318433235 | |
| 655 | - * | |
| 656 | - * @param {import('./react').WPElement} child Any renderable child, such as an element, | |
| 657 | - * string, or fragment. | |
| 658 | - * @param {HTMLElement} container DOM node into which element should be rendered. | |
| 659 | - */ | |
| 660 | - | |
| 661 | - | |
| 662 | -/** | |
| 663 | - * Finds the dom node of a React component. | |
| 664 | - * | |
| 665 | - * @param {import('./react').WPComponent} component Component's instance. | |
| 666 | - */ | |
| 667 | - | |
| 668 | - | |
| 669 | -/** | |
| 670 | - * Renders a given element into the target DOM node. | |
| 671 | - * | |
| 672 | - * @param {import('./react').WPElement} element Element to render. | |
| 673 | - * @param {HTMLElement} target DOM node into which element should be rendered. | |
| 674 | - */ | |
| 675 | - | |
| 676 | - | |
| 677 | -/** | |
| 678 | - * Removes any mounted element from the target DOM node. | |
| 679 | - * | |
| 680 | - * @param {Element} target DOM node in which element is to be removed | |
| 681 | - */ | |
| 682 | - | |
| 683 | - | |
| 684 | -//# sourceMappingURL=react-platform.js.map | |
| 685 | -;// CONCATENATED MODULE: ./packages/element/build-module/utils.js | |
| 686 | -/** | |
| 687 | - * External dependencies | |
| 688 | - */ | |
| 689 | - | |
| 690 | -/** | |
| 691 | - * Checks if the provided WP element is empty. | |
| 692 | - * | |
| 693 | - * @param {*} element WP element to check. | |
| 694 | - * @return {boolean} True when an element is considered empty. | |
| 695 | - */ | |
| 696 | - | |
| 697 | -const isEmptyElement = element => { | |
| 698 | - if ((0,external_lodash_namespaceObject.isNumber)(element)) { | |
| 699 | - return false; | |
| 700 | - } | |
| 701 | - | |
| 702 | - if ((0,external_lodash_namespaceObject.isString)(element) || (0,external_lodash_namespaceObject.isArray)(element)) { | |
| 703 | - return !element.length; | |
| 704 | - } | |
| 705 | - | |
| 706 | - return !element; | |
| 707 | -}; | |
| 708 | -//# sourceMappingURL=utils.js.map | |
| 709 | -;// CONCATENATED MODULE: ./packages/element/build-module/platform.js | |
| 710 | -/** | |
| 711 | - * Parts of this source were derived and modified from react-native-web, | |
| 712 | - * released under the MIT license. | |
| 713 | - * | |
| 714 | - * Copyright (c) 2016-present, Nicolas Gallagher. | |
| 715 | - * Copyright (c) 2015-present, Facebook, Inc. | |
| 716 | - * | |
| 717 | - */ | |
| 718 | -const Platform = { | |
| 719 | - OS: 'web', | |
| 720 | - select: spec => 'web' in spec ? spec.web : spec.default, | |
| 721 | - isWeb: true | |
| 722 | -}; | |
| 723 | -/** | |
| 724 | - * Component used to detect the current Platform being used. | |
| 725 | - * Use Platform.OS === 'web' to detect if running on web enviroment. | |
| 726 | - * | |
| 727 | - * This is the same concept as the React Native implementation. | |
| 728 | - * | |
| 729 | - * @see https://facebook.github.io/react-native/docs/platform-specific-code#platform-module | |
| 730 | - * | |
| 731 | - * Here is an example of how to use the select method: | |
| 732 | - * @example | |
| 733 | - * ```js | |
| 734 | - * import { Platform } from '@wordpress/element'; | |
| 735 | - * | |
| 736 | - * const placeholderLabel = Platform.select( { | |
| 737 | - * native: __( 'Add media' ), | |
| 738 | - * web: __( 'Drag images, upload new ones or select files from your library.' ), | |
| 739 | - * } ); | |
| 740 | - * ``` | |
| 741 | - */ | |
| 742 | - | |
| 743 | -/* harmony default export */ var platform = (Platform); | |
| 744 | -//# sourceMappingURL=platform.js.map | |
| 745 | -;// CONCATENATED MODULE: external ["wp","escapeHtml"] | |
| 746 | -var external_wp_escapeHtml_namespaceObject = window["wp"]["escapeHtml"]; | |
| 747 | -;// CONCATENATED MODULE: ./packages/element/build-module/raw-html.js | |
| 748 | -/** | |
| 749 | - * Internal dependencies | |
| 750 | - */ | |
| 751 | - // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly. | |
| 752 | - | |
| 753 | -/** @typedef {{children: string} & import('react').ComponentPropsWithoutRef<'div'>} RawHTMLProps */ | |
| 754 | - | |
| 755 | -/** | |
| 756 | - * Component used as equivalent of Fragment with unescaped HTML, in cases where | |
| 757 | - * it is desirable to render dangerous HTML without needing a wrapper element. | |
| 758 | - * To preserve additional props, a `div` wrapper _will_ be created if any props | |
| 759 | - * aside from `children` are passed. | |
| 760 | - * | |
| 761 | - * @param {RawHTMLProps} props Children should be a string of HTML or an array | |
| 762 | - * of strings. Other props will be passed through | |
| 763 | - * to the div wrapper. | |
| 764 | - * | |
| 765 | - * @return {JSX.Element} Dangerously-rendering component. | |
| 766 | - */ | |
| 767 | - | |
| 768 | -function RawHTML(_ref) { | |
| 769 | - let { | |
| 770 | - children, | |
| 771 | - ...props | |
| 772 | - } = _ref; | |
| 773 | - let rawHtml = ''; // Cast children as an array, and concatenate each element if it is a string. | |
| 774 | - | |
| 775 | - external_React_namespaceObject.Children.toArray(children).forEach(child => { | |
| 776 | - if (typeof child === 'string' && child.trim() !== '') { | |
| 777 | - rawHtml += child; | |
| 778 | - } | |
| 779 | - }); // The `div` wrapper will be stripped by the `renderElement` serializer in | |
| 780 | - // `./serialize.js` unless there are non-children props present. | |
| 781 | - | |
| 782 | - return (0,external_React_namespaceObject.createElement)('div', { | |
| 783 | - dangerouslySetInnerHTML: { | |
| 784 | - __html: rawHtml | |
| 785 | - }, | |
| 786 | - ...props | |
| 787 | - }); | |
| 788 | -} | |
| 789 | -//# sourceMappingURL=raw-html.js.map | |
| 790 | -;// CONCATENATED MODULE: ./packages/element/build-module/serialize.js | |
| 791 | -/** | |
| 792 | - * Parts of this source were derived and modified from fast-react-render, | |
| 793 | - * released under the MIT license. | |
| 794 | - * | |
| 795 | - * https://github.com/alt-j/fast-react-render | |
| 796 | - * | |
| 797 | - * Copyright (c) 2016 Andrey Morozov | |
| 798 | - * | |
| 799 | - * Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 800 | - * of this software and associated documentation files (the "Software"), to deal | |
| 801 | - * in the Software without restriction, including without limitation the rights | |
| 802 | - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 803 | - * copies of the Software, and to permit persons to whom the Software is | |
| 804 | - * furnished to do so, subject to the following conditions: | |
| 805 | - * | |
| 806 | - * The above copyright notice and this permission notice shall be included in | |
| 807 | - * all copies or substantial portions of the Software. | |
| 808 | - * | |
| 809 | - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 810 | - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 811 | - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 812 | - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| 813 | - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| 814 | - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
| 815 | - * THE SOFTWARE. | |
| 816 | - */ | |
| 817 | - | |
| 818 | -/** | |
| 819 | - * External dependencies | |
| 820 | - */ | |
| 821 | - | |
| 822 | -/** | |
| 823 | - * WordPress dependencies | |
| 824 | - */ | |
| 825 | - | |
| 826 | - | |
| 827 | -/** | |
| 828 | - * Internal dependencies | |
| 829 | - */ | |
| 830 | - | |
| 831 | - | |
| 832 | - | |
| 833 | -/** @typedef {import('./react').WPElement} WPElement */ | |
| 834 | - | |
| 835 | -const { | |
| 836 | - Provider, | |
| 837 | - Consumer | |
| 838 | -} = (0,external_React_namespaceObject.createContext)(undefined); | |
| 839 | -const ForwardRef = (0,external_React_namespaceObject.forwardRef)(() => { | |
| 840 | - return null; | |
| 841 | -}); | |
| 842 | -/** | |
| 843 | - * Valid attribute types. | |
| 844 | - * | |
| 845 | - * @type {Set<string>} | |
| 846 | - */ | |
| 847 | - | |
| 848 | -const ATTRIBUTES_TYPES = new Set(['string', 'boolean', 'number']); | |
| 849 | -/** | |
| 850 | - * Element tags which can be self-closing. | |
| 851 | - * | |
| 852 | - * @type {Set<string>} | |
| 853 | - */ | |
| 854 | - | |
| 855 | -const SELF_CLOSING_TAGS = new Set(['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr']); | |
| 856 | -/** | |
| 857 | - * Boolean attributes are attributes whose presence as being assigned is | |
| 858 | - * meaningful, even if only empty. | |
| 859 | - * | |
| 860 | - * See: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#boolean-attributes | |
| 861 | - * Extracted from: https://html.spec.whatwg.org/multipage/indices.html#attributes-3 | |
| 862 | - * | |
| 863 | - * Object.keys( [ ...document.querySelectorAll( '#attributes-1 > tbody > tr' ) ] | |
| 864 | - * .filter( ( tr ) => tr.lastChild.textContent.indexOf( 'Boolean attribute' ) !== -1 ) | |
| 865 | - * .reduce( ( result, tr ) => Object.assign( result, { | |
| 866 | - * [ tr.firstChild.textContent.trim() ]: true | |
| 867 | - * } ), {} ) ).sort(); | |
| 868 | - * | |
| 869 | - * @type {Set<string>} | |
| 870 | - */ | |
| 871 | - | |
| 872 | -const BOOLEAN_ATTRIBUTES = new Set(['allowfullscreen', 'allowpaymentrequest', 'allowusermedia', 'async', 'autofocus', 'autoplay', 'checked', 'controls', 'default', 'defer', 'disabled', 'download', 'formnovalidate', 'hidden', 'ismap', 'itemscope', 'loop', 'multiple', 'muted', 'nomodule', 'novalidate', 'open', 'playsinline', 'readonly', 'required', 'reversed', 'selected', 'typemustmatch']); | |
| 873 | -/** | |
| 874 | - * Enumerated attributes are attributes which must be of a specific value form. | |
| 875 | - * Like boolean attributes, these are meaningful if specified, even if not of a | |
| 876 | - * valid enumerated value. | |
| 877 | - * | |
| 878 | - * See: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#enumerated-attribute | |
| 879 | - * Extracted from: https://html.spec.whatwg.org/multipage/indices.html#attributes-3 | |
| 880 | - * | |
| 881 | - * Object.keys( [ ...document.querySelectorAll( '#attributes-1 > tbody > tr' ) ] | |
| 882 | - * .filter( ( tr ) => /^("(.+?)";?\s*)+/.test( tr.lastChild.textContent.trim() ) ) | |
| 883 | - * .reduce( ( result, tr ) => Object.assign( result, { | |
| 884 | - * [ tr.firstChild.textContent.trim() ]: true | |
| 885 | - * } ), {} ) ).sort(); | |
| 886 | - * | |
| 887 | - * Some notable omissions: | |
| 888 | - * | |
| 889 | - * - `alt`: https://blog.whatwg.org/omit-alt | |
| 890 | - * | |
| 891 | - * @type {Set<string>} | |
| 892 | - */ | |
| 893 | - | |
| 894 | -const ENUMERATED_ATTRIBUTES = new Set(['autocapitalize', 'autocomplete', 'charset', 'contenteditable', 'crossorigin', 'decoding', 'dir', 'draggable', 'enctype', 'formenctype', 'formmethod', 'http-equiv', 'inputmode', 'kind', 'method', 'preload', 'scope', 'shape', 'spellcheck', 'translate', 'type', 'wrap']); | |
| 895 | -/** | |
| 896 | - * Set of CSS style properties which support assignment of unitless numbers. | |
| 897 | - * Used in rendering of style properties, where `px` unit is assumed unless | |
| 898 | - * property is included in this set or value is zero. | |
| 899 | - * | |
| 900 | - * Generated via: | |
| 901 | - * | |
| 902 | - * Object.entries( document.createElement( 'div' ).style ) | |
| 903 | - * .filter( ( [ key ] ) => ( | |
| 904 | - * ! /^(webkit|ms|moz)/.test( key ) && | |
| 905 | - * ( e.style[ key ] = 10 ) && | |
| 906 | - * e.style[ key ] === '10' | |
| 907 | - * ) ) | |
| 908 | - * .map( ( [ key ] ) => key ) | |
| 909 | - * .sort(); | |
| 910 | - * | |
| 911 | - * @type {Set<string>} | |
| 912 | - */ | |
| 913 | - | |
| 914 | -const CSS_PROPERTIES_SUPPORTS_UNITLESS = new Set(['animation', 'animationIterationCount', 'baselineShift', 'borderImageOutset', 'borderImageSlice', 'borderImageWidth', 'columnCount', 'cx', 'cy', 'fillOpacity', 'flexGrow', 'flexShrink', 'floodOpacity', 'fontWeight', 'gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart', 'lineHeight', 'opacity', 'order', 'orphans', 'r', 'rx', 'ry', 'shapeImageThreshold', 'stopOpacity', 'strokeDasharray', 'strokeDashoffset', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'tabSize', 'widows', 'x', 'y', 'zIndex', 'zoom']); | |
| 915 | -/** | |
| 916 | - * Returns true if the specified string is prefixed by one of an array of | |
| 917 | - * possible prefixes. | |
| 918 | - * | |
| 919 | - * @param {string} string String to check. | |
| 920 | - * @param {string[]} prefixes Possible prefixes. | |
| 921 | - * | |
| 922 | - * @return {boolean} Whether string has prefix. | |
| 923 | - */ | |
| 924 | - | |
| 925 | -function hasPrefix(string, prefixes) { | |
| 926 | - return prefixes.some(prefix => string.indexOf(prefix) === 0); | |
| 927 | -} | |
| 928 | -/** | |
| 929 | - * Returns true if the given prop name should be ignored in attributes | |
| 930 | - * serialization, or false otherwise. | |
| 931 | - * | |
| 932 | - * @param {string} attribute Attribute to check. | |
| 933 | - * | |
| 934 | - * @return {boolean} Whether attribute should be ignored. | |
| 935 | - */ | |
| 936 | - | |
| 937 | -function isInternalAttribute(attribute) { | |
| 938 | - return 'key' === attribute || 'children' === attribute; | |
| 939 | -} | |
| 940 | -/** | |
| 941 | - * Returns the normal form of the element's attribute value for HTML. | |
| 942 | - * | |
| 943 | - * @param {string} attribute Attribute name. | |
| 944 | - * @param {*} value Non-normalized attribute value. | |
| 945 | - * | |
| 946 | - * @return {*} Normalized attribute value. | |
| 947 | - */ | |
| 948 | - | |
| 949 | - | |
| 950 | -function getNormalAttributeValue(attribute, value) { | |
| 951 | - switch (attribute) { | |
| 952 | - case 'style': | |
| 953 | - return renderStyle(value); | |
| 954 | - } | |
| 955 | - | |
| 956 | - return value; | |
| 957 | -} | |
| 958 | -/** | |
| 959 | - * Returns the normal form of the element's attribute name for HTML. | |
| 960 | - * | |
| 961 | - * @param {string} attribute Non-normalized attribute name. | |
| 962 | - * | |
| 963 | - * @return {string} Normalized attribute name. | |
| 964 | - */ | |
| 965 | - | |
| 966 | - | |
| 967 | -function getNormalAttributeName(attribute) { | |
| 968 | - switch (attribute) { | |
| 969 | - case 'htmlFor': | |
| 970 | - return 'for'; | |
| 971 | - | |
| 972 | - case 'className': | |
| 973 | - return 'class'; | |
| 974 | - } | |
| 975 | - | |
| 976 | - return attribute.toLowerCase(); | |
| 977 | -} | |
| 978 | -/** | |
| 979 | - * Returns the normal form of the style property name for HTML. | |
| 980 | - * | |
| 981 | - * - Converts property names to kebab-case, e.g. 'backgroundColor' → 'background-color' | |
| 982 | - * - Leaves custom attributes alone, e.g. '--myBackgroundColor' → '--myBackgroundColor' | |
| 983 | - * - Converts vendor-prefixed property names to -kebab-case, e.g. 'MozTransform' → '-moz-transform' | |
| 984 | - * | |
| 985 | - * @param {string} property Property name. | |
| 986 | - * | |
| 987 | - * @return {string} Normalized property name. | |
| 988 | - */ | |
| 989 | - | |
| 990 | - | |
| 991 | -function getNormalStylePropertyName(property) { | |
| 992 | - if ((0,external_lodash_namespaceObject.startsWith)(property, '--')) { | |
| 993 | - return property; | |
| 994 | - } | |
| 995 | - | |
| 996 | - if (hasPrefix(property, ['ms', 'O', 'Moz', 'Webkit'])) { | |
| 997 | - return '-' + (0,external_lodash_namespaceObject.kebabCase)(property); | |
| 998 | - } | |
| 999 | - | |
| 1000 | - return (0,external_lodash_namespaceObject.kebabCase)(property); | |
| 1001 | -} | |
| 1002 | -/** | |
| 1003 | - * Returns the normal form of the style property value for HTML. Appends a | |
| 1004 | - * default pixel unit if numeric, not a unitless property, and not zero. | |
| 1005 | - * | |
| 1006 | - * @param {string} property Property name. | |
| 1007 | - * @param {*} value Non-normalized property value. | |
| 1008 | - * | |
| 1009 | - * @return {*} Normalized property value. | |
| 1010 | - */ | |
| 1011 | - | |
| 1012 | - | |
| 1013 | -function getNormalStylePropertyValue(property, value) { | |
| 1014 | - if (typeof value === 'number' && 0 !== value && !CSS_PROPERTIES_SUPPORTS_UNITLESS.has(property)) { | |
| 1015 | - return value + 'px'; | |
| 1016 | - } | |
| 1017 | - | |
| 1018 | - return value; | |
| 1019 | -} | |
| 1020 | -/** | |
| 1021 | - * Serializes a React element to string. | |
| 1022 | - * | |
| 1023 | - * @param {import('react').ReactNode} element Element to serialize. | |
| 1024 | - * @param {Object} [context] Context object. | |
| 1025 | - * @param {Object} [legacyContext] Legacy context object. | |
| 1026 | - * | |
| 1027 | - * @return {string} Serialized element. | |
| 1028 | - */ | |
| 1029 | - | |
| 1030 | - | |
| 1031 | -function renderElement(element, context) { | |
| 1032 | - let legacyContext = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | |
| 1033 | - | |
| 1034 | - if (null === element || undefined === element || false === element) { | |
| 1035 | - return ''; | |
| 1036 | - } | |
| 1037 | - | |
| 1038 | - if (Array.isArray(element)) { | |
| 1039 | - return renderChildren(element, context, legacyContext); | |
| 1040 | - } | |
| 1041 | - | |
| 1042 | - switch (typeof element) { | |
| 1043 | - case 'string': | |
| 1044 | - return (0,external_wp_escapeHtml_namespaceObject.escapeHTML)(element); | |
| 1045 | - | |
| 1046 | - case 'number': | |
| 1047 | - return element.toString(); | |
| 1048 | - } | |
| 1049 | - | |
| 1050 | - const { | |
| 1051 | - type, | |
| 1052 | - props | |
| 1053 | - } = | |
| 1054 | - /** @type {{type?: any, props?: any}} */ | |
| 1055 | - element; | |
| 1056 | - | |
| 1057 | - switch (type) { | |
| 1058 | - case external_React_namespaceObject.StrictMode: | |
| 1059 | - case external_React_namespaceObject.Fragment: | |
| 1060 | - return renderChildren(props.children, context, legacyContext); | |
| 1061 | - | |
| 1062 | - case RawHTML: | |
| 1063 | - const { | |
| 1064 | - children, | |
| 1065 | - ...wrapperProps | |
| 1066 | - } = props; | |
| 1067 | - return renderNativeComponent((0,external_lodash_namespaceObject.isEmpty)(wrapperProps) ? null : 'div', { ...wrapperProps, | |
| 1068 | - dangerouslySetInnerHTML: { | |
| 1069 | - __html: children | |
| 1070 | - } | |
| 1071 | - }, context, legacyContext); | |
| 1072 | - } | |
| 1073 | - | |
| 1074 | - switch (typeof type) { | |
| 1075 | - case 'string': | |
| 1076 | - return renderNativeComponent(type, props, context, legacyContext); | |
| 1077 | - | |
| 1078 | - case 'function': | |
| 1079 | - if (type.prototype && typeof type.prototype.render === 'function') { | |
| 1080 | - return renderComponent(type, props, context, legacyContext); | |
| 1081 | - } | |
| 1082 | - | |
| 1083 | - return renderElement(type(props, legacyContext), context, legacyContext); | |
| 1084 | - } | |
| 1085 | - | |
| 1086 | - switch (type && type.$$typeof) { | |
| 1087 | - case Provider.$$typeof: | |
| 1088 | - return renderChildren(props.children, props.value, legacyContext); | |
| 1089 | - | |
| 1090 | - case Consumer.$$typeof: | |
| 1091 | - return renderElement(props.children(context || type._currentValue), context, legacyContext); | |
| 1092 | - | |
| 1093 | - case ForwardRef.$$typeof: | |
| 1094 | - return renderElement(type.render(props), context, legacyContext); | |
| 1095 | - } | |
| 1096 | - | |
| 1097 | - return ''; | |
| 1098 | -} | |
| 1099 | -/** | |
| 1100 | - * Serializes a native component type to string. | |
| 1101 | - * | |
| 1102 | - * @param {?string} type Native component type to serialize, or null if | |
| 1103 | - * rendering as fragment of children content. | |
| 1104 | - * @param {Object} props Props object. | |
| 1105 | - * @param {Object} [context] Context object. | |
| 1106 | - * @param {Object} [legacyContext] Legacy context object. | |
| 1107 | - * | |
| 1108 | - * @return {string} Serialized element. | |
| 1109 | - */ | |
| 1110 | - | |
| 1111 | -function renderNativeComponent(type, props, context) { | |
| 1112 | - let legacyContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; | |
| 1113 | - let content = ''; | |
| 1114 | - | |
| 1115 | - if (type === 'textarea' && props.hasOwnProperty('value')) { | |
| 1116 | - // Textarea children can be assigned as value prop. If it is, render in | |
| 1117 | - // place of children. Ensure to omit so it is not assigned as attribute | |
| 1118 | - // as well. | |
| 1119 | - content = renderChildren(props.value, context, legacyContext); | |
| 1120 | - props = (0,external_lodash_namespaceObject.omit)(props, 'value'); | |
| 1121 | - } else if (props.dangerouslySetInnerHTML && typeof props.dangerouslySetInnerHTML.__html === 'string') { | |
| 1122 | - // Dangerous content is left unescaped. | |
| 1123 | - content = props.dangerouslySetInnerHTML.__html; | |
| 1124 | - } else if (typeof props.children !== 'undefined') { | |
| 1125 | - content = renderChildren(props.children, context, legacyContext); | |
| 1126 | - } | |
| 1127 | - | |
| 1128 | - if (!type) { | |
| 1129 | - return content; | |
| 1130 | - } | |
| 1131 | - | |
| 1132 | - const attributes = renderAttributes(props); | |
| 1133 | - | |
| 1134 | - if (SELF_CLOSING_TAGS.has(type)) { | |
| 1135 | - return '<' + type + attributes + '/>'; | |
| 1136 | - } | |
| 1137 | - | |
| 1138 | - return '<' + type + attributes + '>' + content + '</' + type + '>'; | |
| 1139 | -} | |
| 1140 | -/** @typedef {import('./react').WPComponent} WPComponent */ | |
| 1141 | - | |
| 1142 | -/** | |
| 1143 | - * Serializes a non-native component type to string. | |
| 1144 | - * | |
| 1145 | - * @param {WPComponent} Component Component type to serialize. | |
| 1146 | - * @param {Object} props Props object. | |
| 1147 | - * @param {Object} [context] Context object. | |
| 1148 | - * @param {Object} [legacyContext] Legacy context object. | |
| 1149 | - * | |
| 1150 | - * @return {string} Serialized element | |
| 1151 | - */ | |
| 1152 | - | |
| 1153 | -function renderComponent(Component, props, context) { | |
| 1154 | - let legacyContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; | |
| 1155 | - const instance = new | |
| 1156 | - /** @type {import('react').ComponentClass} */ | |
| 1157 | - Component(props, legacyContext); | |
| 1158 | - | |
| 1159 | - if (typeof // Ignore reason: Current prettier reformats parens and mangles type assertion | |
| 1160 | - // prettier-ignore | |
| 1161 | - | |
| 1162 | - /** @type {{getChildContext?: () => unknown}} */ | |
| 1163 | - instance.getChildContext === 'function') { | |
| 1164 | - Object.assign(legacyContext, | |
| 1165 | - /** @type {{getChildContext?: () => unknown}} */ | |
| 1166 | - instance.getChildContext()); | |
| 1167 | - } | |
| 1168 | - | |
| 1169 | - const html = renderElement(instance.render(), context, legacyContext); | |
| 1170 | - return html; | |
| 1171 | -} | |
| 1172 | -/** | |
| 1173 | - * Serializes an array of children to string. | |
| 1174 | - * | |
| 1175 | - * @param {import('react').ReactNodeArray} children Children to serialize. | |
| 1176 | - * @param {Object} [context] Context object. | |
| 1177 | - * @param {Object} [legacyContext] Legacy context object. | |
| 1178 | - * | |
| 1179 | - * @return {string} Serialized children. | |
| 1180 | - */ | |
| 1181 | - | |
| 1182 | -function renderChildren(children, context) { | |
| 1183 | - let legacyContext = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | |
| 1184 | - let result = ''; | |
| 1185 | - children = (0,external_lodash_namespaceObject.castArray)(children); | |
| 1186 | - | |
| 1187 | - for (let i = 0; i < children.length; i++) { | |
| 1188 | - const child = children[i]; | |
| 1189 | - result += renderElement(child, context, legacyContext); | |
| 1190 | - } | |
| 1191 | - | |
| 1192 | - return result; | |
| 1193 | -} | |
| 1194 | -/** | |
| 1195 | - * Renders a props object as a string of HTML attributes. | |
| 1196 | - * | |
| 1197 | - * @param {Object} props Props object. | |
| 1198 | - * | |
| 1199 | - * @return {string} Attributes string. | |
| 1200 | - */ | |
| 1201 | - | |
| 1202 | - | |
| 1203 | -function renderAttributes(props) { | |
| 1204 | - let result = ''; | |
| 1205 | - | |
| 1206 | - for (const key in props) { | |
| 1207 | - const attribute = getNormalAttributeName(key); | |
| 1208 | - | |
| 1209 | - if (!(0,external_wp_escapeHtml_namespaceObject.isValidAttributeName)(attribute)) { | |
| 1210 | - continue; | |
| 1211 | - } | |
| 1212 | - | |
| 1213 | - let value = getNormalAttributeValue(key, props[key]); // If value is not of serializeable type, skip. | |
| 1214 | - | |
| 1215 | - if (!ATTRIBUTES_TYPES.has(typeof value)) { | |
| 1216 | - continue; | |
| 1217 | - } // Don't render internal attribute names. | |
| 1218 | - | |
| 1219 | - | |
| 1220 | - if (isInternalAttribute(key)) { | |
| 1221 | - continue; | |
| 1222 | - } | |
| 1223 | - | |
| 1224 | - const isBooleanAttribute = BOOLEAN_ATTRIBUTES.has(attribute); // Boolean attribute should be omitted outright if its value is false. | |
| 1225 | - | |
| 1226 | - if (isBooleanAttribute && value === false) { | |
| 1227 | - continue; | |
| 1228 | - } | |
| 1229 | - | |
| 1230 | - const isMeaningfulAttribute = isBooleanAttribute || hasPrefix(key, ['data-', 'aria-']) || ENUMERATED_ATTRIBUTES.has(attribute); // Only write boolean value as attribute if meaningful. | |
| 1231 | - | |
| 1232 | - if (typeof value === 'boolean' && !isMeaningfulAttribute) { | |
| 1233 | - continue; | |
| 1234 | - } | |
| 1235 | - | |
| 1236 | - result += ' ' + attribute; // Boolean attributes should write attribute name, but without value. | |
| 1237 | - // Mere presence of attribute name is effective truthiness. | |
| 1238 | - | |
| 1239 | - if (isBooleanAttribute) { | |
| 1240 | - continue; | |
| 1241 | - } | |
| 1242 | - | |
| 1243 | - if (typeof value === 'string') { | |
| 1244 | - value = (0,external_wp_escapeHtml_namespaceObject.escapeAttribute)(value); | |
| 1245 | - } | |
| 1246 | - | |
| 1247 | - result += '="' + value + '"'; | |
| 1248 | - } | |
| 1249 | - | |
| 1250 | - return result; | |
| 1251 | -} | |
| 1252 | -/** | |
| 1253 | - * Renders a style object as a string attribute value. | |
| 1254 | - * | |
| 1255 | - * @param {Object} style Style object. | |
| 1256 | - * | |
| 1257 | - * @return {string} Style attribute value. | |
| 1258 | - */ | |
| 1259 | - | |
| 1260 | -function renderStyle(style) { | |
| 1261 | - // Only generate from object, e.g. tolerate string value. | |
| 1262 | - if (!(0,external_lodash_namespaceObject.isPlainObject)(style)) { | |
| 1263 | - return style; | |
| 1264 | - } | |
| 1265 | - | |
| 1266 | - let result; | |
| 1267 | - | |
| 1268 | - for (const property in style) { | |
| 1269 | - const value = style[property]; | |
| 1270 | - | |
| 1271 | - if (null === value || undefined === value) { | |
| 1272 | - continue; | |
| 1273 | - } | |
| 1274 | - | |
| 1275 | - if (result) { | |
| 1276 | - result += ';'; | |
| 1277 | - } else { | |
| 1278 | - result = ''; | |
| 1279 | - } | |
| 1280 | - | |
| 1281 | - const normalName = getNormalStylePropertyName(property); | |
| 1282 | - const normalValue = getNormalStylePropertyValue(property, value); | |
| 1283 | - result += normalName + ':' + normalValue; | |
| 1284 | - } | |
| 1285 | - | |
| 1286 | - return result; | |
| 1287 | -} | |
| 1288 | -/* harmony default export */ var serialize = (renderElement); | |
| 1289 | -//# sourceMappingURL=serialize.js.map | |
| 1290 | -;// CONCATENATED MODULE: ./packages/element/build-module/index.js | |
| 1291 | - | |
| 1292 | - | |
| 1293 | - | |
| 1294 | - | |
| 1295 | - | |
| 1296 | - | |
| 1297 | - | |
| 1298 | -//# sourceMappingURL=index.js.map | |
| 1299 | -(window.wp = window.wp || {}).element = __webpack_exports__; | |
| 1300 | -/******/ })() | |
| 1301 | -; | |
| 1 | +window.wp=window.wp||{},window.wp.element=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=539)}({123:function(e,t){e.exports=window.wp.escapeHtml},129:function(e,t){e.exports=window.ReactDOM},13:function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var n=r(48);function o(e,t){if(null==e)return{};var r,o,u=Object(n.a)(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o<c.length;o++)r=c[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(u[r]=e[r])}return u}},15:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(24),o=r(42),u=r(30);function c(e){return function(e){if(Array.isArray(e))return Object(n.a)(e)}(e)||Object(o.a)(e)||Object(u.a)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},2:function(e,t){e.exports=window.lodash},24:function(e,t,r){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}r.d(t,"a",(function(){return n}))},30:function(e,t,r){"use strict";r.d(t,"a",(function(){return o}));var n=r(24);function o(e,t){if(e){if("string"==typeof e)return Object(n.a)(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Object(n.a)(e,t):void 0}}},39:function(e,t,r){"use strict";function n(e){if(Array.isArray(e))return e}r.d(t,"a",(function(){return n}))},40:function(e,t,r){"use strict";function n(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}r.d(t,"a",(function(){return n}))},42:function(e,t,r){"use strict";function n(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}r.d(t,"a",(function(){return n}))},43:function(e,t,r){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}r.d(t,"a",(function(){return n}))},48:function(e,t,r){"use strict";function n(e,t){if(null==e)return{};var r,n,o={},u=Object.keys(e);for(n=0;n<u.length;n++)r=u[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}r.d(t,"a",(function(){return n}))},5:function(e,t,r){"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.d(t,"a",(function(){return n}))},539:function(e,t,r){"use strict";r.r(t),r.d(t,"createInterpolateElement",(function(){return m})),r.d(t,"Children",(function(){return l.Children})),r.d(t,"cloneElement",(function(){return l.cloneElement})),r.d(t,"Component",(function(){return l.Component})),r.d(t,"createContext",(function(){return l.createContext})),r.d(t,"createElement",(function(){return l.createElement})),r.d(t,"createRef",(function(){return l.createRef})),r.d(t,"forwardRef",(function(){return l.forwardRef})),r.d(t,"Fragment",(function(){return l.Fragment})),r.d(t,"isValidElement",(function(){return l.isValidElement})),r.d(t,"memo",(function(){return l.memo})),r.d(t,"StrictMode",(function(){return l.StrictMode})),r.d(t,"useCallback",(function(){return l.useCallback})),r.d(t,"useContext",(function(){return l.useContext})),r.d(t,"useDebugValue",(function(){return l.useDebugValue})),r.d(t,"useEffect",(function(){return l.useEffect})),r.d(t,"useImperativeHandle",(function(){return l.useImperativeHandle})),r.d(t,"useLayoutEffect",(function(){return l.useLayoutEffect})),r.d(t,"useMemo",(function(){return l.useMemo})),r.d(t,"useReducer",(function(){return l.useReducer})),r.d(t,"useRef",(function(){return l.useRef})),r.d(t,"useState",(function(){return l.useState})),r.d(t,"lazy",(function(){return l.lazy})),r.d(t,"Suspense",(function(){return l.Suspense})),r.d(t,"concatChildren",(function(){return g})),r.d(t,"switchChildrenNodeName",(function(){return w})),r.d(t,"createPortal",(function(){return S.createPortal})),r.d(t,"findDOMNode",(function(){return S.findDOMNode})),r.d(t,"render",(function(){return S.render})),r.d(t,"unmountComponentAtNode",(function(){return S.unmountComponentAtNode})),r.d(t,"isEmptyElement",(function(){return P})),r.d(t,"Platform",(function(){return E})),r.d(t,"renderToString",(function(){return X})),r.d(t,"RawHTML",(function(){return C}));var n,o,u,c,i=r(8),a=r(43),f=r(15),l=r(9),s=/<(\/)?(\w+)\s*(\/)?>/g;function d(e,t,r,n,o){return{element:e,tokenStart:t,tokenLength:r,prevOffset:n,leadingTextStart:o,children:[]}}function p(e){var t=function(){var e=s.exec(n);if(null===e)return["no-more-tokens"];var t=e.index,r=Object(i.a)(e,4),o=r[0],u=r[1],c=r[2],a=r[3],f=o.length;return a?["self-closed",c,t,f]:u?["closer",c,t,f]:["opener",c,t,f]}(),r=Object(i.a)(t,4),a=r[0],p=r[1],m=r[2],O=r[3],h=c.length,v=m>o?o:null;if(!e[p])return b(),!1;switch(a){case"no-more-tokens":if(0!==h){var j=c.pop(),g=j.leadingTextStart,w=j.tokenStart;u.push(n.substr(g,w))}return b(),!1;case"self-closed":return 0===h?(null!==v&&u.push(n.substr(v,m-v)),u.push(e[p]),o=m+O,!0):(y(d(e[p],m,O)),o=m+O,!0);case"opener":return c.push(d(e[p],m,O,m+O,v)),o=m+O,!0;case"closer":if(1===h)return function(e){var t=c.pop(),r=t.element,o=t.leadingTextStart,i=t.prevOffset,a=t.tokenStart,s=t.children,d=e?n.substr(i,e-i):n.substr(i);d&&s.push(d),null!==o&&u.push(n.substr(o,a-o)),u.push(l.cloneElement.apply(void 0,[r,null].concat(Object(f.a)(s))))}(m),o=m+O,!0;var S=c.pop(),P=n.substr(S.prevOffset,m-S.prevOffset);S.children.push(P),S.prevOffset=m+O;var E=d(S.element,S.tokenStart,S.tokenLength,m+O);return E.children=S.children,y(E),o=m+O,!0;default:return b(),!1}}function b(){var e=n.length-o;0!==e&&u.push(n.substr(o,e))}function y(e){var t=e.element,r=e.tokenStart,o=e.tokenLength,u=e.prevOffset,i=e.children,a=c[c.length-1],s=n.substr(a.prevOffset,r-a.prevOffset);s&&a.children.push(s),a.children.push(l.cloneElement.apply(void 0,[t,null].concat(Object(f.a)(i)))),a.prevOffset=u||r+o}var m=function(e,t){if(n=e,o=0,u=[],c=[],s.lastIndex=0,!function(e){var t="object"===Object(a.a)(e),r=t&&Object.values(e);return t&&r.length&&r.every((function(e){return Object(l.isValidElement)(e)}))}(t))throw new TypeError("The conversionMap provided is not valid. It must be an object with values that are WPElements");do{}while(p(t));return l.createElement.apply(void 0,[l.Fragment,null].concat(Object(f.a)(u)))},O=r(5),h=r(13),v=r(2);function j(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function g(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce((function(e,t,r){return l.Children.forEach(t,(function(t,n){t&&"string"!=typeof t&&(t=Object(l.cloneElement)(t,{key:[r,n].join()})),e.push(t)})),e}),[])}function w(e,t){return e&&l.Children.map(e,(function(e,r){if(Object(v.isString)(e))return Object(l.createElement)(t,{key:r},e);var n=e.props,o=n.children,u=Object(h.a)(n,["children"]);return Object(l.createElement)(t,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?j(Object(r),!0).forEach((function(t){Object(O.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):j(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({key:r},u),o)}))}var S=r(129),P=function(e){return!Object(v.isNumber)(e)&&(Object(v.isString)(e)||Object(v.isArray)(e)?!e.length:!e)},E={OS:"web",select:function(e){return"web"in e?e.web:e.default}},k=r(123);function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function C(e){var t=e.children,r=Object(h.a)(e,["children"]);return Object(l.createElement)("div",function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?x(Object(r),!0).forEach((function(t){Object(O.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):x(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({dangerouslySetInnerHTML:{__html:t}},r))}function M(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function I(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?M(Object(r),!0).forEach((function(t){Object(O.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):M(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var D=Object(l.createContext)(void 0),A=D.Provider,T=D.Consumer,_=Object(l.forwardRef)((function(){return null})),R=new Set(["string","boolean","number"]),L=new Set(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),H=new Set(["allowfullscreen","allowpaymentrequest","allowusermedia","async","autofocus","autoplay","checked","controls","default","defer","disabled","download","formnovalidate","hidden","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected","typemustmatch"]),N=new Set(["autocapitalize","autocomplete","charset","contenteditable","crossorigin","decoding","dir","draggable","enctype","formenctype","formmethod","http-equiv","inputmode","kind","method","preload","scope","shape","spellcheck","translate","type","wrap"]),$=new Set(["animation","animationIterationCount","baselineShift","borderImageOutset","borderImageSlice","borderImageWidth","columnCount","cx","cy","fillOpacity","flexGrow","flexShrink","floodOpacity","fontWeight","gridColumnEnd","gridColumnStart","gridRowEnd","gridRowStart","lineHeight","opacity","order","orphans","r","rx","ry","shapeImageThreshold","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","tabSize","widows","x","y","zIndex","zoom"]);function z(e,t){return t.some((function(t){return 0===e.indexOf(t)}))}function V(e){return"key"===e||"children"===e}function W(e,t){switch(e){case"style":return function(e){if(!Object(v.isPlainObject)(e))return e;var t;for(var r in e){var n=e[r];if(null!=n)t?t+=";":t="",t+=q(r)+":"+G(r,n)}return t}(t)}return t}function F(e){switch(e){case"htmlFor":return"for";case"className":return"class"}return e.toLowerCase()}function q(e){return Object(v.startsWith)(e,"--")?e:z(e,["ms","O","Moz","Webkit"])?"-"+Object(v.kebabCase)(e):Object(v.kebabCase)(e)}function G(e,t){return"number"!=typeof t||0===t||$.has(e)?t:t+"px"}function U(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(null==e||!1===e)return"";if(Array.isArray(e))return K(e,t,r);switch(Object(a.a)(e)){case"string":return Object(k.escapeHTML)(e);case"number":return e.toString()}var n=e.type,o=e.props;switch(n){case l.StrictMode:case l.Fragment:return K(o.children,t,r);case C:var u=o.children,c=Object(h.a)(o,["children"]);return B(Object(v.isEmpty)(c)?null:"div",I(I({},c),{},{dangerouslySetInnerHTML:{__html:u}}),t,r)}switch(Object(a.a)(n)){case"string":return B(n,o,t,r);case"function":return n.prototype&&"function"==typeof n.prototype.render?J(n,o,t,r):U(n(o,r),t,r)}switch(n&&n.$$typeof){case A.$$typeof:return K(o.children,o.value,r);case T.$$typeof:return U(o.children(t||n._currentValue),t,r);case _.$$typeof:return U(n.render(o),t,r)}return""}function B(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o="";if("textarea"===e&&t.hasOwnProperty("value")?(o=K(t.value,r,n),t=Object(v.omit)(t,"value")):t.dangerouslySetInnerHTML&&"string"==typeof t.dangerouslySetInnerHTML.__html?o=t.dangerouslySetInnerHTML.__html:void 0!==t.children&&(o=K(t.children,r,n)),!e)return o;var u=Q(t);return L.has(e)?"<"+e+u+"/>":"<"+e+u+">"+o+"</"+e+">"}function J(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=new e(t,n);"function"==typeof o.getChildContext&&Object.assign(n,o.getChildContext());var u=U(o.render(),r,n);return u}function K(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="";e=Object(v.castArray)(e);for(var o=0;o<e.length;o++){var u=e[o];n+=U(u,t,r)}return n}function Q(e){var t="";for(var r in e){var n=F(r);if(Object(k.isValidAttributeName)(n)){var o=W(r,e[r]);if(R.has(Object(a.a)(o))&&!V(r)){var u=H.has(n);if(!u||!1!==o){var c=u||z(r,["data-","aria-"])||N.has(n);("boolean"!=typeof o||c)&&(t+=" "+n,u||("string"==typeof o&&(o=Object(k.escapeAttribute)(o)),t+='="'+o+'"'))}}}}return t}var X=U},8:function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(39),o=r(30),u=r(40);function c(e,t){return Object(n.a)(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],_n=!0,n=!1,o=void 0;try{for(var u,c=e[Symbol.iterator]();!(_n=(u=c.next()).done)&&(r.push(u.value),!t||r.length!==t);_n=!0);}catch(e){n=!0,o=e}finally{try{_n||null==c.return||c.return()}finally{if(n)throw o}}return r}}(e,t)||Object(o.a)(e,t)||Object(u.a)()}},9:function(e,t){e.exports=window.React}}); | |