Make WordPress Core

Changeset 50996


Ignore:
Timestamp:
05/25/2021 08:38:04 AM (5 years ago)
Author:
noisysocks
Message:

Adds the widgets block editor to widgets.php and customize.php

Moves the widgets block editor from Gutenberg into WordPress Core.

  • Adds @wordpress/edit-widgets, @wordpress/customize-widgets and @wordpress/widgets.
  • Modifies wp-admin/widgets.php to branch between the old editor and new editor depending on wp_use_widgets_block_editor().
  • Modifies WP_Customize_Widgets to branch between the old editor control and new editor control depending on wp_use_widgets_block_editor().

Fixes #51506.
Props isabel_brison, TimothyBlynJacobs, andraganescu, kevin940726, talldanwp.

Location:
trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/package-lock.json

    r50945 r50996  
    140140                },
    141141                "@babel/helper-define-polyfill-provider": {
    142                         "version": "0.2.0",
    143                         "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz",
    144                         "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==",
     142                        "version": "0.2.1",
     143                        "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.1.tgz",
     144                        "integrity": "sha512-x3AUTVZNPunaw1opRTa5OwVA5N0YxGlIad9xQ5QflK1uIS7PnAGGU5O2Dj/G183fR//N8AzTq+Q8+oiu9m0VFg==",
    145145                        "dev": true,
    146146                        "requires": {
    … …  
    18671867                                },
    18681868                                "picomatch": {
    1869                                         "version": "2.2.3",
    1870                                         "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    1871                                         "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     1869                                        "version": "2.3.0",
     1870                                        "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     1871                                        "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    18721872                                        "dev": true
    18731873                                },
    … …  
    20812081                                },
    20822082                                "picomatch": {
    2083                                         "version": "2.2.3",
    2084                                         "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    2085                                         "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     2083                                        "version": "2.3.0",
     2084                                        "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     2085                                        "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    20862086                                        "dev": true
    20872087                                },
    … …  
    24992499                        "integrity": "sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw=="
    25002500                },
     2501                "@tootallnate/once": {
     2502                        "version": "1.1.2",
     2503                        "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
     2504                        "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
     2505                        "dev": true
     2506                },
    25012507                "@types/babel__core": {
    25022508                        "version": "7.1.14",
    … …  
    25412547                },
    25422548                "@types/cheerio": {
    2543                         "version": "0.22.28",
    2544                         "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.28.tgz",
    2545                         "integrity": "sha512-ehUMGSW5IeDxJjbru4awKYMlKGmo1wSSGUVqXtYwlgmUM8X1a0PZttEIm6yEY7vHsY/hh6iPnklF213G0UColw==",
     2549                        "version": "0.22.29",
     2550                        "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.29.tgz",
     2551                        "integrity": "sha512-rNX1PsrDPxiNiyLnRKiW2NXHJFHqx0Fl3J2WsZq0MTBspa/FgwlqhXJE2crIcc+/2IglLHtSWw7g053oUR8fOg==",
    25462552                        "dev": true,
    25472553                        "requires": {
    … …  
    32153221                },
    32163222                "@wordpress/block-directory": {
    3217                         "version": "2.1.0",
    3218                         "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-2.1.0.tgz",
    3219                         "integrity": "sha512-jTiz6LHWxFoUSCd053FnIYyJDBj64Zi3jf4W2kGeeLL/UAxoJmnHNw/7dfD+udT+/3dVLiUvr5eVuImeKTURSQ==",
     3223                        "version": "2.1.2",
     3224                        "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-2.1.2.tgz",
     3225                        "integrity": "sha512-jjJxJ/RonDbAgNl+Vbrdhub+RxuJwaSUxumxmUcCuiwaK2tc8eLcS0rkHhq0cOILvTzLFsmk4Ql0Pjbemnx1JQ==",
    32203226                        "requires": {
    32213227                                "@babel/runtime": "^7.13.10",
    … …  
    32263232                                "@wordpress/components": "^14.1.0",
    32273233                                "@wordpress/compose": "^4.1.0",
    3228                                 "@wordpress/core-data": "^3.1.0",
     3234                                "@wordpress/core-data": "^3.1.1",
    32293235                                "@wordpress/data": "^5.1.0",
    32303236                                "@wordpress/data-controls": "^2.1.0",
    3231                                 "@wordpress/edit-post": "^4.1.0",
    3232                                 "@wordpress/editor": "^10.1.0",
     3237                                "@wordpress/edit-post": "^4.1.2",
     3238                                "@wordpress/editor": "^10.1.1",
    32333239                                "@wordpress/element": "^3.1.0",
    32343240                                "@wordpress/hooks": "^3.1.0",
    … …  
    32853291                                "tinycolor2": "^1.4.2",
    32863292                                "traverse": "^0.6.6"
     3293                        },
     3294                        "dependencies": {
     3295                                "@wordpress/a11y": {
     3296                                        "version": "3.1.0",
     3297                                        "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-3.1.0.tgz",
     3298                                        "integrity": "sha512-wYDXl9/JQuryAsqLaM/9g9edqq+ZXCmqyvc6OH8zjZAUuIc7zzCxzrI0A/mMyZBaBPK9BequCEoqIlbjrJqI5A==",
     3299                                        "requires": {
     3300                                                "@babel/runtime": "^7.13.10",
     3301                                                "@wordpress/dom-ready": "^3.1.0",
     3302                                                "@wordpress/i18n": "^4.1.0"
     3303                                        }
     3304                                },
     3305                                "@wordpress/api-fetch": {
     3306                                        "version": "5.1.0",
     3307                                        "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-5.1.0.tgz",
     3308                                        "integrity": "sha512-UEB+CAv5rKV1wRZBW/hh/0fqwCtiUD6dLs0XRhESa3LdU5TRnera+bvXZ6wo5BJt/D+cSFcndznpSoFmHFFFMg==",
     3309                                        "requires": {
     3310                                                "@babel/runtime": "^7.13.10",
     3311                                                "@wordpress/i18n": "^4.1.0",
     3312                                                "@wordpress/url": "^3.1.0"
     3313                                        }
     3314                                },
     3315                                "@wordpress/autop": {
     3316                                        "version": "3.1.0",
     3317                                        "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-3.1.0.tgz",
     3318                                        "integrity": "sha512-vfrNXODE3QNpjHQE0j5f/TDzIQcRWw9+jrwyfohV+xl0LJXgXduRcSooiRiWzEbosYp9BGieMuQql28gQ+VAhQ==",
     3319                                        "requires": {
     3320                                                "@babel/runtime": "^7.13.10"
     3321                                        }
     3322                                },
     3323                                "@wordpress/blob": {
     3324                                        "version": "3.1.0",
     3325                                        "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-3.1.0.tgz",
     3326                                        "integrity": "sha512-f17a5x/z5ugIfzjowh393IJ0pi8WUqrAdafHT3F9v5w7zBq4C1zkam5pE1qja3AWdS4VT4drF+1LOwFRAJK1UQ==",
     3327                                        "requires": {
     3328                                                "@babel/runtime": "^7.13.10"
     3329                                        }
     3330                                },
     3331                                "@wordpress/block-serialization-default-parser": {
     3332                                        "version": "4.1.0",
     3333                                        "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.1.0.tgz",
     3334                                        "integrity": "sha512-uzmp8qf9+CG9+fCq8ceQGzhbbNbeC3pVPtlnED433BoLJqJn99aXV/hkL0fGW8wRO1l8JVjwfY+uTlcPv//IjA==",
     3335                                        "requires": {
     3336                                                "@babel/runtime": "^7.13.10"
     3337                                        }
     3338                                },
     3339                                "@wordpress/blocks": {
     3340                                        "version": "9.1.0",
     3341                                        "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-9.1.0.tgz",
     3342                                        "integrity": "sha512-gbLq+335j+NvoR2uP5/X/pjs8b35Bz1qL3j4mZkC87ZPiFIOZYakwa6Uuuq86IO+w9nMHqq83yUUjMYPkAZhSA==",
     3343                                        "requires": {
     3344                                                "@babel/runtime": "^7.13.10",
     3345                                                "@wordpress/autop": "^3.1.0",
     3346                                                "@wordpress/blob": "^3.1.0",
     3347                                                "@wordpress/block-serialization-default-parser": "^4.1.0",
     3348                                                "@wordpress/compose": "^4.1.0",
     3349                                                "@wordpress/data": "^5.1.0",
     3350                                                "@wordpress/deprecated": "^3.1.0",
     3351                                                "@wordpress/dom": "^3.1.0",
     3352                                                "@wordpress/element": "^3.1.0",
     3353                                                "@wordpress/hooks": "^3.1.0",
     3354                                                "@wordpress/html-entities": "^3.1.0",
     3355                                                "@wordpress/i18n": "^4.1.0",
     3356                                                "@wordpress/icons": "^4.0.0",
     3357                                                "@wordpress/is-shallow-equal": "^4.1.0",
     3358                                                "@wordpress/shortcode": "^3.1.0",
     3359                                                "hpq": "^1.3.0",
     3360                                                "lodash": "^4.17.21",
     3361                                                "rememo": "^3.0.0",
     3362                                                "showdown": "^1.9.1",
     3363                                                "simple-html-tokenizer": "^0.5.7",
     3364                                                "tinycolor2": "^1.4.2",
     3365                                                "uuid": "^8.3.0"
     3366                                        }
     3367                                },
     3368                                "@wordpress/components": {
     3369                                        "version": "14.1.0",
     3370                                        "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-14.1.0.tgz",
     3371                                        "integrity": "sha512-K+/NU0Tvz53U6EI5SanF6YzndJfaVcG4wdTkEieitI71oJn3wgNDJz+exzuTN6tdG971NlnioWI4oGvgljt4NA==",
     3372                                        "requires": {
     3373                                                "@babel/runtime": "^7.13.10",
     3374                                                "@emotion/cache": "^10.0.27",
     3375                                                "@emotion/core": "^10.1.1",
     3376                                                "@emotion/css": "^10.0.22",
     3377                                                "@emotion/native": "^10.0.22",
     3378                                                "@emotion/styled": "^10.0.23",
     3379                                                "@wordpress/a11y": "^3.1.0",
     3380                                                "@wordpress/compose": "^4.1.0",
     3381                                                "@wordpress/date": "^4.1.0",
     3382                                                "@wordpress/deprecated": "^3.1.0",
     3383                                                "@wordpress/dom": "^3.1.0",
     3384                                                "@wordpress/element": "^3.1.0",
     3385                                                "@wordpress/hooks": "^3.1.0",
     3386                                                "@wordpress/i18n": "^4.1.0",
     3387                                                "@wordpress/icons": "^4.0.0",
     3388                                                "@wordpress/is-shallow-equal": "^4.1.0",
     3389                                                "@wordpress/keycodes": "^3.1.0",
     3390                                                "@wordpress/primitives": "^2.1.0",
     3391                                                "@wordpress/rich-text": "^4.1.0",
     3392                                                "@wordpress/warning": "^2.1.0",
     3393                                                "classnames": "^2.2.5",
     3394                                                "dom-scroll-into-view": "^1.2.1",
     3395                                                "downshift": "^6.0.15",
     3396                                                "emotion": "^10.0.23",
     3397                                                "gradient-parser": "^0.1.5",
     3398                                                "highlight-words-core": "^1.2.2",
     3399                                                "lodash": "^4.17.21",
     3400                                                "memize": "^1.1.0",
     3401                                                "moment": "^2.22.1",
     3402                                                "re-resizable": "^6.4.0",
     3403                                                "react-dates": "^17.1.1",
     3404                                                "react-resize-aware": "^3.1.0",
     3405                                                "react-spring": "^8.0.20",
     3406                                                "react-use-gesture": "^9.0.0",
     3407                                                "reakit": "^1.3.5",
     3408                                                "rememo": "^3.0.0",
     3409                                                "tinycolor2": "^1.4.2",
     3410                                                "uuid": "^8.3.0"
     3411                                        }
     3412                                },
     3413                                "@wordpress/compose": {
     3414                                        "version": "4.1.0",
     3415                                        "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-4.1.0.tgz",
     3416                                        "integrity": "sha512-/luv2I9XdHT/4mRCsH2Tv9OHT4wuShRd2+9VYVvadQYg26s0OvOPBct88gYKBq4g/XlH4hJmVodCbv2hOJRw6Q==",
     3417                                        "requires": {
     3418                                                "@babel/runtime": "^7.13.10",
     3419                                                "@wordpress/deprecated": "^3.1.0",
     3420                                                "@wordpress/dom": "^3.1.0",
     3421                                                "@wordpress/element": "^3.1.0",
     3422                                                "@wordpress/is-shallow-equal": "^4.1.0",
     3423                                                "@wordpress/keycodes": "^3.1.0",
     3424                                                "@wordpress/priority-queue": "^2.1.0",
     3425                                                "clipboard": "^2.0.1",
     3426                                                "lodash": "^4.17.21",
     3427                                                "memize": "^1.1.0",
     3428                                                "mousetrap": "^1.6.5",
     3429                                                "react-resize-aware": "^3.1.0",
     3430                                                "use-memo-one": "^1.1.1"
     3431                                        }
     3432                                },
     3433                                "@wordpress/data": {
     3434                                        "version": "5.1.0",
     3435                                        "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-5.1.0.tgz",
     3436                                        "integrity": "sha512-P0TT9UJLfCdi8fXChfLGwtkWAl1Qtw49tZ580RdC2wiDym52EDcDiiHhALKCPprNS23bYXxBw46kAJxhUNwNHA==",
     3437                                        "requires": {
     3438                                                "@babel/runtime": "^7.13.10",
     3439                                                "@wordpress/compose": "^4.1.0",
     3440                                                "@wordpress/deprecated": "^3.1.0",
     3441                                                "@wordpress/element": "^3.1.0",
     3442                                                "@wordpress/is-shallow-equal": "^4.1.0",
     3443                                                "@wordpress/priority-queue": "^2.1.0",
     3444                                                "@wordpress/redux-routine": "^4.1.0",
     3445                                                "equivalent-key-map": "^0.2.2",
     3446                                                "is-promise": "^4.0.0",
     3447                                                "lodash": "^4.17.21",
     3448                                                "memize": "^1.1.0",
     3449                                                "redux": "^4.1.0",
     3450                                                "turbo-combine-reducers": "^1.0.2",
     3451                                                "use-memo-one": "^1.1.1"
     3452                                        }
     3453                                },
     3454                                "@wordpress/data-controls": {
     3455                                        "version": "2.1.0",
     3456                                        "resolved": "https://registry.npmjs.org/@wordpress/data-controls/-/data-controls-2.1.0.tgz",
     3457                                        "integrity": "sha512-jBid81RK56cF6GDVoWiGI0yaPYBKwepa4q/HunlLwKS+mEdJTng24azRh38EvsxZLdgbXAwKb9FVcacNag7sTg==",
     3458                                        "requires": {
     3459                                                "@babel/runtime": "^7.13.10",
     3460                                                "@wordpress/api-fetch": "^5.1.0",
     3461                                                "@wordpress/data": "^5.1.0",
     3462                                                "@wordpress/deprecated": "^3.1.0"
     3463                                        }
     3464                                },
     3465                                "@wordpress/date": {
     3466                                        "version": "4.1.0",
     3467                                        "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-4.1.0.tgz",
     3468                                        "integrity": "sha512-hMId0AQ8tcBRiG9dlMOy0q0oTZ1PM4u5S3lIUPJPIV1K/IHr4nWB1/ODvK/gMLP6JSzNr/sLQlgtCfD0hVQh+w==",
     3469                                        "requires": {
     3470                                                "@babel/runtime": "^7.13.10",
     3471                                                "moment": "^2.22.1",
     3472                                                "moment-timezone": "^0.5.31"
     3473                                        }
     3474                                },
     3475                                "@wordpress/deprecated": {
     3476                                        "version": "3.1.0",
     3477                                        "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-3.1.0.tgz",
     3478                                        "integrity": "sha512-rgEOkBSiarmL68nkn+5CrZWUkr7LNJkBzdIrEIChENEbC26GvkskeoZxGw+xXs9GBWyv6NRRu9NvftQKcQPgUg==",
     3479                                        "requires": {
     3480                                                "@babel/runtime": "^7.13.10",
     3481                                                "@wordpress/hooks": "^3.1.0"
     3482                                        }
     3483                                },
     3484                                "@wordpress/dom": {
     3485                                        "version": "3.1.0",
     3486                                        "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-3.1.0.tgz",
     3487                                        "integrity": "sha512-gjLbvmRIGi8PcxxPvzWLp6Y3SEn/t5V8rEOpLypTbE18wEcU7tZzjG1wtARLwtoKdBSwKfs5hY7B/HPkm+37tg==",
     3488                                        "requires": {
     3489                                                "@babel/runtime": "^7.13.10",
     3490                                                "lodash": "^4.17.21"
     3491                                        }
     3492                                },
     3493                                "@wordpress/dom-ready": {
     3494                                        "version": "3.1.0",
     3495                                        "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-3.1.0.tgz",
     3496                                        "integrity": "sha512-w/SYZfZrCDMRaes2odJZ+m0P3n7bKUNcliZUhNIvSz3iNq/xIt7Ean5YJQa17M2kqGz2R1t8D7gYabT0mDZMQA==",
     3497                                        "requires": {
     3498                                                "@babel/runtime": "^7.13.10"
     3499                                        }
     3500                                },
     3501                                "@wordpress/element": {
     3502                                        "version": "3.1.0",
     3503                                        "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-3.1.0.tgz",
     3504                                        "integrity": "sha512-dDCs7zIH4CCa6q+BzDHpn99NLvgKDcM9/p4pAcCppNnR352wipmWK3EK6faWfzv1M6o+VJXhIQuXahxKPLpBsg==",
     3505                                        "requires": {
     3506                                                "@babel/runtime": "^7.13.10",
     3507                                                "@types/react": "^16.9.0",
     3508                                                "@types/react-dom": "^16.9.0",
     3509                                                "@wordpress/escape-html": "^2.1.0",
     3510                                                "lodash": "^4.17.21",
     3511                                                "react": "^16.13.1",
     3512                                                "react-dom": "^16.13.1"
     3513                                        }
     3514                                },
     3515                                "@wordpress/escape-html": {
     3516                                        "version": "2.1.0",
     3517                                        "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.1.0.tgz",
     3518                                        "integrity": "sha512-N0EZokyky5O5ib8jyqIyzd7Bg+z0XOxrUmHv6kE8o1FpdVwZYFAVg9ZAhb9YQYfFVqIrfbste+v3Mak0iKrD4A==",
     3519                                        "requires": {
     3520                                                "@babel/runtime": "^7.13.10"
     3521                                        }
     3522                                },
     3523                                "@wordpress/hooks": {
     3524                                        "version": "3.1.0",
     3525                                        "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.1.0.tgz",
     3526                                        "integrity": "sha512-mE94KYLanCj3YK3TF4L1pBtLplcKVHBwv+n1u3jkrnNuH8C7LWhZMddnip0B1FlSPut3Sut+R2pQcI9xuH4fPQ==",
     3527                                        "requires": {
     3528                                                "@babel/runtime": "^7.13.10"
     3529                                        }
     3530                                },
     3531                                "@wordpress/html-entities": {
     3532                                        "version": "3.1.0",
     3533                                        "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.1.0.tgz",
     3534                                        "integrity": "sha512-zKDc00lP9H7d+8vSXzUgxtDRLA/Pf+42R7sqOFpvdFM2GlGxjRP0pj10PmYov2HYO2FmIwQqCpdITX+a4/tX4Q==",
     3535                                        "requires": {
     3536                                                "@babel/runtime": "^7.13.10"
     3537                                        }
     3538                                },
     3539                                "@wordpress/i18n": {
     3540                                        "version": "4.1.0",
     3541                                        "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.1.0.tgz",
     3542                                        "integrity": "sha512-wn4z/bspItNFghUQ3tGdXd7BgTNt0XknEvxr5yeZ9wEeXK02SBwET1GNYJMcpOCXBaYBKJ9Va80jk5bW60JJ/w==",
     3543                                        "requires": {
     3544                                                "@babel/runtime": "^7.13.10",
     3545                                                "@wordpress/hooks": "^3.1.0",
     3546                                                "gettext-parser": "^1.3.1",
     3547                                                "lodash": "^4.17.21",
     3548                                                "memize": "^1.1.0",
     3549                                                "sprintf-js": "^1.1.1",
     3550                                                "tannin": "^1.2.0"
     3551                                        }
     3552                                },
     3553                                "@wordpress/icons": {
     3554                                        "version": "4.0.0",
     3555                                        "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-4.0.0.tgz",
     3556                                        "integrity": "sha512-WuHEHwuI1NtoK2poJjSE7s14Tv8JZEOaAvK0CFN0NJPOznuLzPmykrL0FtVStDDnsaFqPdnsSzk9JE+nTojeBQ==",
     3557                                        "requires": {
     3558                                                "@babel/runtime": "^7.13.10",
     3559                                                "@wordpress/element": "^3.1.0",
     3560                                                "@wordpress/primitives": "^2.1.0"
     3561                                        }
     3562                                },
     3563                                "@wordpress/is-shallow-equal": {
     3564                                        "version": "4.1.0",
     3565                                        "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-4.1.0.tgz",
     3566                                        "integrity": "sha512-qj0X9r1eVYX+XYCNA5pdNq42OU/To68aYY6iZwpJ3jaaAYmUdA9T4tjGwSgU3MSqFDV4NUE6X+kf71XgNxjFjQ==",
     3567                                        "requires": {
     3568                                                "@babel/runtime": "^7.13.10"
     3569                                        }
     3570                                },
     3571                                "@wordpress/keyboard-shortcuts": {
     3572                                        "version": "2.1.0",
     3573                                        "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-2.1.0.tgz",
     3574                                        "integrity": "sha512-tY1Vr0ZeFtPJUhHOj8UUY8E3C6l521E44a5CKC1oJURXDbIriVPQIN/Cvv8gMDDhX31Fj94Qzz+0du3znUxd8Q==",
     3575                                        "requires": {
     3576                                                "@babel/runtime": "^7.13.10",
     3577                                                "@wordpress/compose": "^4.1.0",
     3578                                                "@wordpress/data": "^5.1.0",
     3579                                                "@wordpress/element": "^3.1.0",
     3580                                                "@wordpress/keycodes": "^3.1.0",
     3581                                                "lodash": "^4.17.21",
     3582                                                "rememo": "^3.0.0"
     3583                                        }
     3584                                },
     3585                                "@wordpress/keycodes": {
     3586                                        "version": "3.1.0",
     3587                                        "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.1.0.tgz",
     3588                                        "integrity": "sha512-P9w9e68cSrQo8ypG+nHXMhQOm7YkCxwqkrFz8L5Y2T1hGqb3SJF9/IrBQiBjV5e6yTQRgWk5mGZqK8pEAM+WZQ==",
     3589                                        "requires": {
     3590                                                "@babel/runtime": "^7.13.10",
     3591                                                "@wordpress/i18n": "^4.1.0",
     3592                                                "lodash": "^4.17.21"
     3593                                        }
     3594                                },
     3595                                "@wordpress/notices": {
     3596                                        "version": "3.1.0",
     3597                                        "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-3.1.0.tgz",
     3598                                        "integrity": "sha512-PiqHUT4Ftk4KdvEUZ89BTIGugFA60NdAquu5OVj5373vWtezaJO8gwcKvA+qY7sIroWEiN+7etcsq4SJR0i6oQ==",
     3599                                        "requires": {
     3600                                                "@babel/runtime": "^7.13.10",
     3601                                                "@wordpress/a11y": "^3.1.0",
     3602                                                "@wordpress/data": "^5.1.0",
     3603                                                "lodash": "^4.17.21"
     3604                                        }
     3605                                },
     3606                                "@wordpress/primitives": {
     3607                                        "version": "2.1.0",
     3608                                        "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-2.1.0.tgz",
     3609                                        "integrity": "sha512-MAWLEN5ZhNBlHBDbjq3HIp78Ny53KAjLzGJ5OHTxspsbyOp+AbWMaxxkZ3k8Cm6sXWVD8UOiTbDElK70U+X/MQ==",
     3610                                        "requires": {
     3611                                                "@babel/runtime": "^7.13.10",
     3612                                                "@wordpress/element": "^3.1.0",
     3613                                                "classnames": "^2.2.5"
     3614                                        }
     3615                                },
     3616                                "@wordpress/priority-queue": {
     3617                                        "version": "2.1.0",
     3618                                        "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-2.1.0.tgz",
     3619                                        "integrity": "sha512-0jfdKTFQnOPg+t2x/Zs6vkpb76lzClT8QP+dnUjHJvsn8WZ+b2BC9R7Qo7RBeQjnz5ii3nFnRAA0YgpsLBRXdQ==",
     3620                                        "requires": {
     3621                                                "@babel/runtime": "^7.13.10"
     3622                                        }
     3623                                },
     3624                                "@wordpress/redux-routine": {
     3625                                        "version": "4.1.0",
     3626                                        "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-4.1.0.tgz",
     3627                                        "integrity": "sha512-Ju+YKXQOo6S8gy/ctfCf+bQ4eR7zsCMABLF7X/yk2+WE5kA91+STuWLHMX9AwKW2LOwS1cOhYzqJnmGPrY14uw==",
     3628                                        "requires": {
     3629                                                "@babel/runtime": "^7.13.10",
     3630                                                "is-promise": "^4.0.0",
     3631                                                "lodash": "^4.17.21",
     3632                                                "rungen": "^0.3.2"
     3633                                        }
     3634                                },
     3635                                "@wordpress/rich-text": {
     3636                                        "version": "4.1.0",
     3637                                        "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-4.1.0.tgz",
     3638                                        "integrity": "sha512-+7DvKaD+NmgrMWYHb+bsZ+2C+hq6OUiQzMdIlZH0XdsY95CF83b6Fp+MMLJ0tWR0dw5YShKOQnY3gm969AJTxA==",
     3639                                        "requires": {
     3640                                                "@babel/runtime": "^7.13.10",
     3641                                                "@wordpress/compose": "^4.1.0",
     3642                                                "@wordpress/data": "^5.1.0",
     3643                                                "@wordpress/dom": "^3.1.0",
     3644                                                "@wordpress/element": "^3.1.0",
     3645                                                "@wordpress/escape-html": "^2.1.0",
     3646                                                "@wordpress/is-shallow-equal": "^4.1.0",
     3647                                                "@wordpress/keycodes": "^3.1.0",
     3648                                                "classnames": "^2.2.5",
     3649                                                "lodash": "^4.17.21",
     3650                                                "memize": "^1.1.0",
     3651                                                "rememo": "^3.0.0"
     3652                                        }
     3653                                },
     3654                                "@wordpress/shortcode": {
     3655                                        "version": "3.1.0",
     3656                                        "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-3.1.0.tgz",
     3657                                        "integrity": "sha512-a32GLIvW57j2crzAR05gDgtYuE8B00eoex79t27kFL9C/qftD28qpF63KpkM4E9+fyDFEaZFLxQoLiRYpcVenQ==",
     3658                                        "requires": {
     3659                                                "@babel/runtime": "^7.13.10",
     3660                                                "lodash": "^4.17.21",
     3661                                                "memize": "^1.1.0"
     3662                                        }
     3663                                },
     3664                                "@wordpress/token-list": {
     3665                                        "version": "2.1.0",
     3666                                        "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-2.1.0.tgz",
     3667                                        "integrity": "sha512-EE+Kt0R+FgZtEa4lbYDlWSIA9KAr7wjOIogpBFPbDmwD6f2tEa3gFvIX5LlffvMjIm8ftWCN2oYCHdI1r2AqnA==",
     3668                                        "requires": {
     3669                                                "@babel/runtime": "^7.13.10",
     3670                                                "lodash": "^4.17.21"
     3671                                        }
     3672                                },
     3673                                "@wordpress/url": {
     3674                                        "version": "3.1.0",
     3675                                        "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.1.0.tgz",
     3676                                        "integrity": "sha512-XGvM4WZhQveRZOalGwUaj0xfrohMPtUZY5rfwWWTdSX9yo3fZECFsfg0msm0x1UwRxcxS9fBk9YgixtyaGdnCA==",
     3677                                        "requires": {
     3678                                                "@babel/runtime": "^7.13.10",
     3679                                                "lodash": "^4.17.21",
     3680                                                "react-native-url-polyfill": "^1.1.2"
     3681                                        }
     3682                                },
     3683                                "@wordpress/warning": {
     3684                                        "version": "2.1.0",
     3685                                        "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.1.0.tgz",
     3686                                        "integrity": "sha512-/pGUDZK5ONnsvLAhHXFGI6bRPBJvKzY0/6G9ZpA37oNa49S/BB9cxt5cNFEt+mFapRg6U+Tz8FAsi0qJ8ruupQ=="
     3687                                },
     3688                                "@wordpress/wordcount": {
     3689                                        "version": "3.1.0",
     3690                                        "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.1.0.tgz",
     3691                                        "integrity": "sha512-a9K1KUGl9KcWP1j0LuYEJw1OXYWTKNh9R8jEw8Jc5v4DiMABaxY97l2SZGpJoFfVWJt93bgp2v3YadAoKnsNGg==",
     3692                                        "requires": {
     3693                                                "@babel/runtime": "^7.13.10",
     3694                                                "lodash": "^4.17.21"
     3695                                        }
     3696                                }
    32873697                        }
    32883698                },
    32893699                "@wordpress/block-library": {
    3290                         "version": "3.1.0",
    3291                         "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-3.1.0.tgz",
    3292                         "integrity": "sha512-m1oMg64kfB2qR+A+eXQCNIue9+4S901csm4gI18Gz5bV1cOPC76DabRJADnC2+JOwtuFunWAQkz1cPLQMaC20w==",
     3700                        "version": "3.2.1",
     3701                        "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-3.2.1.tgz",
     3702                        "integrity": "sha512-4vwOJSIijBQsgY1paqdvolfyFIkHkjmYJX7svQYACyarUl4wPMiA3unBARE0dcsq2vNGuKr69uAwf5fYk0d3Kw==",
    32933703                        "requires": {
    32943704                                "@babel/runtime": "^7.13.10",
    … …  
    33013711                                "@wordpress/components": "^14.1.0",
    33023712                                "@wordpress/compose": "^4.1.0",
    3303                                 "@wordpress/core-data": "^3.1.0",
     3713                                "@wordpress/core-data": "^3.1.1",
    33043714                                "@wordpress/data": "^5.1.0",
    33053715                                "@wordpress/date": "^4.1.0",
    33063716                                "@wordpress/deprecated": "^3.1.0",
    33073717                                "@wordpress/dom": "^3.1.0",
    3308                                 "@wordpress/editor": "^10.1.0",
     3718                                "@wordpress/editor": "^10.1.1",
    33093719                                "@wordpress/element": "^3.1.0",
    33103720                                "@wordpress/escape-html": "^2.1.0",
    … …  
    33163726                                "@wordpress/notices": "^3.1.0",
    33173727                                "@wordpress/primitives": "^2.1.0",
    3318                                 "@wordpress/reusable-blocks": "^2.1.0",
     3728                                "@wordpress/reusable-blocks": "^2.1.1",
    33193729                                "@wordpress/rich-text": "^4.1.0",
    33203730                                "@wordpress/server-side-render": "^2.1.0",
    … …  
    34403850                },
    34413851                "@wordpress/core-data": {
    3442                         "version": "3.1.0",
    3443                         "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-3.1.0.tgz",
    3444                         "integrity": "sha512-Wh3MJERzhpAEkQBcfnutx1U8hgBU9DDR2Cu9SpDhKocZgDueU+HyZ6i6tlE38Ous1R8gk1r9b5W0N9YXQfbL3Q==",
     3852                        "version": "3.1.1",
     3853                        "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-3.1.1.tgz",
     3854                        "integrity": "sha512-O9aEqVdLRjo0g9UlgNaFsa/swbPdsdscQ/q8IBirDTWMoeRJTaINa2fQHe5G9QeeGA1frKwrKRPeWQ9lwM6ANg==",
    34453855                        "requires": {
    34463856                                "@babel/runtime": "^7.13.10",
    … …  
    34693879                        }
    34703880                },
     3881                "@wordpress/customize-widgets": {
     3882                        "version": "1.0.1",
     3883                        "resolved": "https://registry.npmjs.org/@wordpress/customize-widgets/-/customize-widgets-1.0.1.tgz",
     3884                        "integrity": "sha512-ndGtrDdXqrD1FrBUM5wwzcYrj1gfvhZtKmJudJQ+L17lxPWNnpxRHWDNsK80/UxaTluatDU782kuucTu3S5Icw==",
     3885                        "requires": {
     3886                                "@babel/runtime": "^7.11.2",
     3887                                "@wordpress/a11y": "^3.1.0",
     3888                                "@wordpress/block-editor": "^6.1.0",
     3889                                "@wordpress/block-library": "^3.2.1",
     3890                                "@wordpress/blocks": "^9.1.0",
     3891                                "@wordpress/components": "^14.1.0",
     3892                                "@wordpress/compose": "^4.1.0",
     3893                                "@wordpress/core-data": "^3.1.1",
     3894                                "@wordpress/data": "^5.1.0",
     3895                                "@wordpress/dom": "^3.1.0",
     3896                                "@wordpress/element": "^3.1.0",
     3897                                "@wordpress/hooks": "^3.1.0",
     3898                                "@wordpress/i18n": "^4.1.0",
     3899                                "@wordpress/icons": "^4.0.0",
     3900                                "@wordpress/is-shallow-equal": "^4.1.0",
     3901                                "@wordpress/keyboard-shortcuts": "^2.1.0",
     3902                                "@wordpress/keycodes": "^3.1.0",
     3903                                "@wordpress/media-utils": "^2.1.0",
     3904                                "@wordpress/widgets": "^1.1.1",
     3905                                "classnames": "^2.2.6",
     3906                                "lodash": "^4.17.21"
     3907                        }
     3908                },
    34713909                "@wordpress/data": {
    34723910                        "version": "5.1.0",
    … …  
    35794017                },
    35804018                "@wordpress/edit-post": {
    3581                         "version": "4.1.0",
    3582                         "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-4.1.0.tgz",
    3583                         "integrity": "sha512-JkWuOSkBtpIUzzG78S+AUaAHE8oBT7lzJyRhMlOX+yThhPGWgGyqB670vvDBUFk59BCPTEknZGGtYLrMYmrjCQ==",
     4019                        "version": "4.1.2",
     4020                        "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-4.1.2.tgz",
     4021                        "integrity": "sha512-BJrBXqK/2AcC+ooNNLWkxNrBKcbDJSVtCpE76jNyk/Qv7211p++HrcaubY0z5veMeRTB4ayEa0ky9HYwgcy3Nw==",
    35844022                        "requires": {
    35854023                                "@babel/runtime": "^7.13.10",
    … …  
    35874025                                "@wordpress/api-fetch": "^5.1.0",
    35884026                                "@wordpress/block-editor": "^6.1.0",
    3589                                 "@wordpress/block-library": "^3.1.0",
     4027                                "@wordpress/block-library": "^3.2.1",
    35904028                                "@wordpress/blocks": "^9.1.0",
    35914029                                "@wordpress/components": "^14.1.0",
    35924030                                "@wordpress/compose": "^4.1.0",
    3593                                 "@wordpress/core-data": "^3.1.0",
     4031                                "@wordpress/core-data": "^3.1.1",
    35944032                                "@wordpress/data": "^5.1.0",
    35954033                                "@wordpress/data-controls": "^2.1.0",
    3596                                 "@wordpress/editor": "^10.1.0",
     4034                                "@wordpress/editor": "^10.1.1",
    35974035                                "@wordpress/element": "^3.1.0",
    35984036                                "@wordpress/hooks": "^3.1.0",
    … …  
    36244062                        }
    36254063                },
     4064                "@wordpress/edit-widgets": {
     4065                        "version": "2.1.2",
     4066                        "resolved": "https://registry.npmjs.org/@wordpress/edit-widgets/-/edit-widgets-2.1.2.tgz",
     4067                        "integrity": "sha512-P4aH1KikWJmJxWo+MnFoi+x7b3b4WLDRmWEwU06XcrMtcYN1U4Zmu0aygp+e949qPSbcSYPMOyIKVK32NuNpMA==",
     4068                        "requires": {
     4069                                "@babel/runtime": "^7.13.10",
     4070                                "@wordpress/a11y": "^3.1.0",
     4071                                "@wordpress/api-fetch": "^5.1.0",
     4072                                "@wordpress/block-editor": "^6.1.0",
     4073                                "@wordpress/block-library": "^3.2.1",
     4074                                "@wordpress/blocks": "^9.1.0",
     4075                                "@wordpress/components": "^14.1.0",
     4076                                "@wordpress/compose": "^4.1.0",
     4077                                "@wordpress/core-data": "^3.1.1",
     4078                                "@wordpress/data": "^5.1.0",
     4079                                "@wordpress/data-controls": "^2.1.0",
     4080                                "@wordpress/element": "^3.1.0",
     4081                                "@wordpress/hooks": "^3.1.0",
     4082                                "@wordpress/i18n": "^4.1.0",
     4083                                "@wordpress/icons": "^4.0.0",
     4084                                "@wordpress/interface": "^3.1.0",
     4085                                "@wordpress/keyboard-shortcuts": "^2.1.0",
     4086                                "@wordpress/keycodes": "^3.1.0",
     4087                                "@wordpress/media-utils": "^2.1.0",
     4088                                "@wordpress/notices": "^3.1.0",
     4089                                "@wordpress/plugins": "^3.1.0",
     4090                                "@wordpress/reusable-blocks": "^2.1.1",
     4091                                "@wordpress/server-side-render": "^2.1.0",
     4092                                "@wordpress/url": "^3.1.0",
     4093                                "@wordpress/widgets": "^1.1.1",
     4094                                "classnames": "^2.2.5",
     4095                                "lodash": "^4.17.21",
     4096                                "rememo": "^3.0.0",
     4097                                "uuid": "^8.3.0"
     4098                        }
     4099                },
    36264100                "@wordpress/editor": {
    3627                         "version": "10.1.0",
    3628                         "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-10.1.0.tgz",
    3629                         "integrity": "sha512-dEudn+0DQCD8Ryiq1J7BrKEU+kttgnKIX1dZEs60gD+dNwrTPMBr78g0qsxwVZlWIbFT/honHRWgLHBo4qeg9g==",
     4101                        "version": "10.1.1",
     4102                        "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-10.1.1.tgz",
     4103                        "integrity": "sha512-4o4s8Mxyn06h+JtzQOnsLloYLvkn4gu/7bIm5g5ubA7W4BJ/DGYxt5bBM21Qh1E+SVaClM7+5dFQ8RK+QYZIBA==",
    36304104                        "requires": {
    36314105                                "@babel/runtime": "^7.13.10",
    … …  
    36374111                                "@wordpress/components": "^14.1.0",
    36384112                                "@wordpress/compose": "^4.1.0",
    3639                                 "@wordpress/core-data": "^3.1.0",
     4113                                "@wordpress/core-data": "^3.1.1",
    36404114                                "@wordpress/data": "^5.1.0",
    36414115                                "@wordpress/data-controls": "^2.1.0",
    … …  
    36524126                                "@wordpress/media-utils": "^2.1.0",
    36534127                                "@wordpress/notices": "^3.1.0",
    3654                                 "@wordpress/reusable-blocks": "^2.1.0",
     4128                                "@wordpress/reusable-blocks": "^2.1.1",
    36554129                                "@wordpress/rich-text": "^4.1.0",
    36564130                                "@wordpress/server-side-render": "^2.1.0",
    … …  
    40874561                },
    40884562                "@wordpress/reusable-blocks": {
    4089                         "version": "2.1.0",
    4090                         "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-2.1.0.tgz",
    4091                         "integrity": "sha512-5xXMgLTaULcaBLYSeRegacz3mC9dPEZUssySFx10ill6yxnNR7W5QXtdXxeuQE43la7fPuCdqCf6W0nrCoxSgA==",
     4563                        "version": "2.1.1",
     4564                        "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-2.1.1.tgz",
     4565                        "integrity": "sha512-SD4oEYBBqYnuKBiCGM3sSO3tOdi5JhCCjdos2MXbD5oaoY8QeVKYvCYIwdDk1xlGIoV0PaX7dinUEB0Hu5a2bQ==",
    40924566                        "requires": {
    40934567                                "@wordpress/block-editor": "^6.1.0",
    … …  
    40954569                                "@wordpress/components": "^14.1.0",
    40964570                                "@wordpress/compose": "^4.1.0",
    4097                                 "@wordpress/core-data": "^3.1.0",
     4571                                "@wordpress/core-data": "^3.1.1",
    40984572                                "@wordpress/data": "^5.1.0",
    40994573                                "@wordpress/element": "^3.1.0",
    … …  
    47575231                        "integrity": "sha512-/pGUDZK5ONnsvLAhHXFGI6bRPBJvKzY0/6G9ZpA37oNa49S/BB9cxt5cNFEt+mFapRg6U+Tz8FAsi0qJ8ruupQ=="
    47585232                },
     5233                "@wordpress/widgets": {
     5234                        "version": "1.1.1",
     5235                        "resolved": "https://registry.npmjs.org/@wordpress/widgets/-/widgets-1.1.1.tgz",
     5236                        "integrity": "sha512-DnPvVcjx/QfGRX57vecpL1vIQFrijsVB6t6dzlZjCM+Kw4QY/qjmyyTg32G8TKhHg+d6amsscc9CTLawdArBtQ==",
     5237                        "requires": {
     5238                                "@babel/runtime": "^7.13.10",
     5239                                "@wordpress/blocks": "^9.1.0",
     5240                                "@wordpress/components": "^14.1.0",
     5241                                "@wordpress/core-data": "^3.1.1",
     5242                                "@wordpress/data": "^5.1.0",
     5243                                "@wordpress/i18n": "^4.1.0",
     5244                                "@wordpress/icons": "^4.0.0"
     5245                        }
     5246                },
    47595247                "@wordpress/wordcount": {
    47605248                        "version": "3.1.0",
    … …  
    59736461                },
    59746462                "babel-plugin-polyfill-corejs2": {
    5975                         "version": "0.2.0",
    5976                         "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz",
    5977                         "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==",
     6463                        "version": "0.2.1",
     6464                        "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.1.tgz",
     6465                        "integrity": "sha512-hXGSPbr6IbjeMyGew+3uGIAkRjBFSOJ9FLDZNOfHuyJZCcoia4nd/72J0bSgvfytcVfUcP/dxEVcUhVJuQRtSw==",
    59786466                        "dev": true,
    59796467                        "requires": {
    59806468                                "@babel/compat-data": "^7.13.11",
    5981                                 "@babel/helper-define-polyfill-provider": "^0.2.0",
     6469                                "@babel/helper-define-polyfill-provider": "^0.2.1",
    59826470                                "semver": "^6.1.1"
    59836471                        },
    … …  
    59926480                },
    59936481                "babel-plugin-polyfill-corejs3": {
    5994                         "version": "0.2.0",
    5995                         "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz",
    5996                         "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==",
    5997                         "dev": true,
    5998                         "requires": {
    5999                                 "@babel/helper-define-polyfill-provider": "^0.2.0",
     6482                        "version": "0.2.1",
     6483                        "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.1.tgz",
     6484                        "integrity": "sha512-WZCqF3DLUhdTD/P381MDJfuP18hdCZ+iqJ+wHtzhWENpsiof284JJ1tMQg1CE+hfCWyG48F7e5gDMk2c3Laz7w==",
     6485                        "dev": true,
     6486                        "requires": {
     6487                                "@babel/helper-define-polyfill-provider": "^0.2.1",
    60006488                                "core-js-compat": "^3.9.1"
    60016489                        }
    60026490                },
    60036491                "babel-plugin-polyfill-regenerator": {
    6004                         "version": "0.2.0",
    6005                         "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz",
    6006                         "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==",
    6007                         "dev": true,
    6008                         "requires": {
    6009                                 "@babel/helper-define-polyfill-provider": "^0.2.0"
     6492                        "version": "0.2.1",
     6493                        "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.1.tgz",
     6494                        "integrity": "sha512-T3bYyL3Sll2EtC94v3f+fA8M28q7YPTOZdB++SRHjvYZTvtd+WorMUq3tDTD4Q7Kjk1LG0gGromslKjcO5p2TA==",
     6495                        "dev": true,
     6496                        "requires": {
     6497                                "@babel/helper-define-polyfill-provider": "^0.2.1"
    60106498                        }
    60116499                },
    … …  
    78568344                        "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
    78578345                        "dev": true
    7858                 },
    7859                 "contains-path": {
    7860                         "version": "1.0.0",
    7861                         "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-1.0.0.tgz",
    7862                         "integrity": "sha1-NFizMhhWA+ju0Y9RjUoQiIo6vJE=",
    7863                         "dev": true,
    7864                         "requires": {
    7865                                 "normalize-path": "^2.1.1",
    7866                                 "path-starts-with": "^1.0.0"
    7867                         },
    7868                         "dependencies": {
    7869                                 "normalize-path": {
    7870                                         "version": "2.1.1",
    7871                                         "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
    7872                                         "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
    7873                                         "dev": true,
    7874                                         "requires": {
    7875                                                 "remove-trailing-separator": "^1.0.1"
    7876                                         }
    7877                                 }
    7878                         }
    78798346                },
    78808347                "content-disposition": {
    … …  
    974610213                },
    974710214                "eslint": {
    9748                         "version": "7.26.0",
    9749                         "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.26.0.tgz",
    9750                         "integrity": "sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==",
     10215                        "version": "7.27.0",
     10216                        "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.27.0.tgz",
     10217                        "integrity": "sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==",
    975110218                        "dev": true,
    975210219                        "requires": {
    … …  
    975910226                                "doctrine": "^3.0.0",
    976010227                                "enquirer": "^2.3.5",
     10228                                "escape-string-regexp": "^4.0.0",
    976110229                                "eslint-scope": "^5.1.1",
    976210230                                "eslint-utils": "^2.1.0",
    … …  
    976510233                                "esquery": "^1.4.0",
    976610234                                "esutils": "^2.0.2",
     10235                                "fast-deep-equal": "^3.1.3",
    976710236                                "file-entry-cache": "^6.0.1",
    976810237                                "functional-red-black-tree": "^1.0.1",
    … …  
    977610245                                "json-stable-stringify-without-jsonify": "^1.0.1",
    977710246                                "levn": "^0.4.1",
    9778                                 "lodash": "^4.17.21",
     10247                                "lodash.merge": "^4.6.2",
    977910248                                "minimatch": "^3.0.4",
    978010249                                "natural-compare": "^1.4.0",
    … …  
    978510254                                "strip-ansi": "^6.0.0",
    978610255                                "strip-json-comments": "^3.1.0",
    9787                                 "table": "^6.0.4",
     10256                                "table": "^6.0.9",
    978810257                                "text-table": "^0.2.0",
    978910258                                "v8-compile-cache": "^2.0.3"
    … …  
    982510294                                        }
    982610295                                },
     10296                                "escape-string-regexp": {
     10297                                        "version": "4.0.0",
     10298                                        "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
     10299                                        "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
     10300                                        "dev": true
     10301                                },
    982710302                                "eslint-scope": {
    982810303                                        "version": "5.1.1",
    … …  
    999510470                },
    999610471                "eslint-plugin-import": {
    9997                         "version": "2.23.2",
    9998                         "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.2.tgz",
    9999                         "integrity": "sha512-LmNoRptHBxOP+nb0PIKz1y6OSzCJlB+0g0IGS3XV4KaKk2q4szqQ6s6F1utVf5ZRkxk/QOTjdxe7v4VjS99Bsg==",
     10472                        "version": "2.23.3",
     10473                        "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.3.tgz",
     10474                        "integrity": "sha512-wDxdYbSB55F7T5CC7ucDjY641VvKmlRwT0Vxh7PkY1mI4rclVRFWYfsrjDgZvwYYDZ5ee0ZtfFKXowWjqvEoRQ==",
    1000010475                        "dev": true,
    1000110476                        "requires": {
    1000210477                                "array-includes": "^3.1.3",
    1000310478                                "array.prototype.flat": "^1.2.4",
    10004                                 "contains-path": "^1.0.0",
    1000510479                                "debug": "^2.6.9",
    1000610480                                "doctrine": "^2.1.0",
    … …  
    1114211616                                        "dependencies": {
    1114311617                                                "picomatch": {
    11144                                                         "version": "2.2.3",
    11145                                                         "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    11146                                                         "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     11618                                                        "version": "2.3.0",
     11619                                                        "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     11620                                                        "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    1114711621                                                        "dev": true
    1114811622                                                }
    … …  
    1165312127                },
    1165412128                "fraction.js": {
    11655                         "version": "4.1.0",
    11656                         "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.0.tgz",
    11657                         "integrity": "sha512-o9lSKpK0TDqDwTL24Hxqi6I99s942l6TYkfl6WvGWgLOIFz/YonSGKfiSeMadoiNvTfqnfOa9mjb5SGVbBK9/w==",
     12129                        "version": "4.1.1",
     12130                        "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz",
     12131                        "integrity": "sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==",
    1165812132                        "dev": true
    1165912133                },
    … …  
    1340113875                        }
    1340213876                },
     13877                "http-proxy-agent": {
     13878                        "version": "4.0.1",
     13879                        "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
     13880                        "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
     13881                        "dev": true,
     13882                        "requires": {
     13883                                "@tootallnate/once": "1",
     13884                                "agent-base": "6",
     13885                                "debug": "4"
     13886                        },
     13887                        "dependencies": {
     13888                                "agent-base": {
     13889                                        "version": "6.0.2",
     13890                                        "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
     13891                                        "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
     13892                                        "dev": true,
     13893                                        "requires": {
     13894                                                "debug": "4"
     13895                                        }
     13896                                }
     13897                        }
     13898                },
    1340313899                "http-proxy-middleware": {
    1340413900                        "version": "0.19.1",
    … …  
    1493415430                                },
    1493515431                                "picomatch": {
    14936                                         "version": "2.2.3",
    14937                                         "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    14938                                         "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     15432                                        "version": "2.3.0",
     15433                                        "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     15434                                        "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    1493915435                                        "dev": true
    1494015436                                },
    … …  
    1515515651                                },
    1515615652                                "picomatch": {
    15157                                         "version": "2.2.3",
    15158                                         "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    15159                                         "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     15653                                        "version": "2.3.0",
     15654                                        "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     15655                                        "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    1516015656                                        "dev": true
    1516115657                                },
    … …  
    1527115767                                },
    1527215768                                "picomatch": {
    15273                                         "version": "2.2.3",
    15274                                         "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    15275                                         "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     15769                                        "version": "2.3.0",
     15770                                        "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     15771                                        "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    1527615772                                        "dev": true
    1527715773                                },
    … …  
    1570416200                                },
    1570516201                                "picomatch": {
    15706                                         "version": "2.2.3",
    15707                                         "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    15708                                         "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     16202                                        "version": "2.3.0",
     16203                                        "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     16204                                        "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    1570916205                                        "dev": true
    1571016206                                },
    … …  
    1594316439                },
    1594416440                "jsdom": {
    15945                         "version": "16.5.3",
    15946                         "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz",
    15947                         "integrity": "sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==",
     16441                        "version": "16.6.0",
     16442                        "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz",
     16443                        "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==",
    1594816444                        "dev": true,
    1594916445                        "requires": {
    1595016446                                "abab": "^2.0.5",
    15951                                 "acorn": "^8.1.0",
     16447                                "acorn": "^8.2.4",
    1595216448                                "acorn-globals": "^6.0.0",
    1595316449                                "cssom": "^0.4.4",
    … …  
    1595716453                                "domexception": "^2.0.1",
    1595816454                                "escodegen": "^2.0.0",
     16455                                "form-data": "^3.0.0",
    1595916456                                "html-encoding-sniffer": "^2.0.1",
    15960                                 "is-potential-custom-element-name": "^1.0.0",
     16457                                "http-proxy-agent": "^4.0.1",
     16458                                "https-proxy-agent": "^5.0.0",
     16459                                "is-potential-custom-element-name": "^1.0.1",
    1596116460                                "nwsapi": "^2.2.0",
    1596216461                                "parse5": "6.0.1",
    15963                                 "request": "^2.88.2",
    15964                                 "request-promise-native": "^1.0.9",
    1596516462                                "saxes": "^5.0.1",
    1596616463                                "symbol-tree": "^3.2.4",
    … …  
    1597216469                                "whatwg-mimetype": "^2.3.0",
    1597316470                                "whatwg-url": "^8.5.0",
    15974                                 "ws": "^7.4.4",
     16471                                "ws": "^7.4.5",
    1597516472                                "xml-name-validator": "^3.0.0"
    1597616473                        },
    … …  
    1598116478                                        "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==",
    1598216479                                        "dev": true
     16480                                },
     16481                                "agent-base": {
     16482                                        "version": "6.0.2",
     16483                                        "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
     16484                                        "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
     16485                                        "dev": true,
     16486                                        "requires": {
     16487                                                "debug": "4"
     16488                                        }
     16489                                },
     16490                                "form-data": {
     16491                                        "version": "3.0.1",
     16492                                        "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
     16493                                        "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
     16494                                        "dev": true,
     16495                                        "requires": {
     16496                                                "asynckit": "^0.4.0",
     16497                                                "combined-stream": "^1.0.8",
     16498                                                "mime-types": "^2.1.12"
     16499                                        }
     16500                                },
     16501                                "https-proxy-agent": {
     16502                                        "version": "5.0.0",
     16503                                        "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
     16504                                        "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
     16505                                        "dev": true,
     16506                                        "requires": {
     16507                                                "agent-base": "6",
     16508                                                "debug": "4"
     16509                                        }
    1598316510                                },
    1598416511                                "webidl-conversions": {
    … …  
    1657617103                        "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
    1657717104                        "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
     17105                        "dev": true
     17106                },
     17107                "lodash.merge": {
     17108                        "version": "4.6.2",
     17109                        "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
     17110                        "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
    1657817111                        "dev": true
    1657917112                },
    … …  
    1898419517                        "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
    1898519518                        "dev": true
    18986                 },
    18987                 "path-starts-with": {
    18988                         "version": "1.0.0",
    18989                         "resolved": "https://registry.npmjs.org/path-starts-with/-/path-starts-with-1.0.0.tgz",
    18990                         "integrity": "sha1-soJDAV6LE43lcmgqxS2kLmRq2E4=",
    18991                         "dev": true,
    18992                         "requires": {
    18993                                 "normalize-path": "^2.1.1"
    18994                         },
    18995                         "dependencies": {
    18996                                 "normalize-path": {
    18997                                         "version": "2.1.1",
    18998                                         "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
    18999                                         "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
    19000                                         "dev": true,
    19001                                         "requires": {
    19002                                                 "remove-trailing-separator": "^1.0.1"
    19003                                         }
    19004                                 }
    19005                         }
    1900619519                },
    1900719520                "path-to-regexp": {
    … …  
    2111121624                        }
    2111221625                },
    21113                 "request-promise-core": {
    21114                         "version": "1.1.4",
    21115                         "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz",
    21116                         "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
    21117                         "dev": true,
    21118                         "requires": {
    21119                                 "lodash": "^4.17.19"
    21120                         }
    21121                 },
    21122                 "request-promise-native": {
    21123                         "version": "1.0.9",
    21124                         "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz",
    21125                         "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==",
    21126                         "dev": true,
    21127                         "requires": {
    21128                                 "request-promise-core": "1.1.4",
    21129                                 "stealthy-require": "^1.1.1",
    21130                                 "tough-cookie": "^2.3.3"
    21131                         },
    21132                         "dependencies": {
    21133                                 "tough-cookie": {
    21134                                         "version": "2.5.0",
    21135                                         "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
    21136                                         "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
    21137                                         "dev": true,
    21138                                         "requires": {
    21139                                                 "psl": "^1.1.28",
    21140                                                 "punycode": "^2.1.1"
    21141                                         }
    21142                                 }
    21143                         }
    21144                 },
    2114521626                "require-directory": {
    2114621627                        "version": "2.1.1",
    … …  
    2270123182                        "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
    2270223183                        "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
    22703                         "dev": true
    22704                 },
    22705                 "stealthy-require": {
    22706                         "version": "1.1.1",
    22707                         "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
    22708                         "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
    2270923184                        "dev": true
    2271023185                },
    … …  
    2352423999                                },
    2352524000                                "picomatch": {
    23526                                         "version": "2.2.3",
    23527                                         "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
    23528                                         "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
     24001                                        "version": "2.3.0",
     24002                                        "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
     24003                                        "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
    2352924004                                        "dev": true
    2353024005                                },
    … …  
    2433824813                },
    2433924814                "tr46": {
    24340                         "version": "2.0.2",
    24341                         "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz",
    24342                         "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==",
     24815                        "version": "2.1.0",
     24816                        "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
     24817                        "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
    2434324818                        "dev": true,
    2434424819                        "requires": {
  • trunk/package.json

    r50945 r50996  
    8383                "@wordpress/autop": "3.1.0",
    8484                "@wordpress/blob": "3.1.0",
    85                 "@wordpress/block-directory": "2.1.0",
     85                "@wordpress/block-directory": "2.1.2",
    8686                "@wordpress/block-editor": "6.1.0",
    87                 "@wordpress/block-library": "3.1.0",
     87                "@wordpress/block-library": "3.2.1",
    8888                "@wordpress/block-serialization-default-parser": "4.1.0",
    8989                "@wordpress/blocks": "9.1.0",
    9090                "@wordpress/components": "14.1.0",
    9191                "@wordpress/compose": "4.1.0",
    92                 "@wordpress/core-data": "3.1.0",
     92                "@wordpress/core-data": "3.1.1",
     93                "@wordpress/customize-widgets": "1.0.1",
    9394                "@wordpress/data": "5.1.0",
    9495                "@wordpress/data-controls": "2.1.0",
    … …  
    9798                "@wordpress/dom": "3.1.0",
    9899                "@wordpress/dom-ready": "3.1.0",
    99                 "@wordpress/edit-post": "4.1.0",
    100                 "@wordpress/editor": "10.1.0",
     100                "@wordpress/edit-post": "4.1.2",
     101                "@wordpress/edit-widgets": "2.1.2",
     102                "@wordpress/editor": "10.1.1",
    101103                "@wordpress/element": "3.1.0",
    102104                "@wordpress/escape-html": "2.1.0",
    … …  
    118120                "@wordpress/priority-queue": "2.1.0",
    119121                "@wordpress/redux-routine": "4.1.0",
    120                 "@wordpress/reusable-blocks": "2.1.0",
     122                "@wordpress/reusable-blocks": "2.1.1",
    121123                "@wordpress/rich-text": "4.1.0",
    122124                "@wordpress/server-side-render": "2.1.0",
    … …  
    126128                "@wordpress/viewport": "3.1.0",
    127129                "@wordpress/warning": "2.1.0",
     130                "@wordpress/widgets": "1.1.1",
    128131                "@wordpress/wordcount": "3.1.0",
    129132                "backbone": "1.4.0",
  • trunk/src/wp-admin/admin-header.php

    r50142 r50996  
    191191
    192192if ( $current_screen->is_block_editor() ) {
    193         // Default to is-fullscreen-mode to avoid jumps in the UI.
    194         $admin_body_class .= ' block-editor-page is-fullscreen-mode wp-embed-responsive';
     193        $admin_body_class .= ' block-editor-page wp-embed-responsive';
    195194}
    196195
  • trunk/src/wp-admin/edit-form-blocks.php

    r50991 r50996  
    2929$current_screen = get_current_screen();
    3030$current_screen->is_block_editor( true );
     31
     32// Default to is-fullscreen-mode to avoid jumps in the UI.
     33add_filter(
     34        'admin_body_class',
     35        function( $classes ) {
     36                return "$classes is-fullscreen-mode";
     37        }
     38);
    3139
    3240/*
  • trunk/src/wp-admin/widgets.php

    r49113 r50996  
    11<?php
    22/**
    3  * Widget administration panel
     3 * Widget administration screen.
    44 *
    55 * @package WordPress
    … …  
    2121}
    2222
    23 $widgets_access = get_user_setting( 'widgets_access' );
    24 if ( isset( $_GET['widgets-access'] ) ) {
    25         check_admin_referer( 'widgets-access' );
    26 
    27         $widgets_access = 'on' === $_GET['widgets-access'] ? 'on' : 'off';
    28         set_user_setting( 'widgets_access', $widgets_access );
    29 }
    30 
    31 if ( 'on' === $widgets_access ) {
    32         add_filter( 'admin_body_class', 'wp_widgets_access_body_class' );
    33 } else {
    34         wp_enqueue_script( 'admin-widgets' );
    35 
    36         if ( wp_is_mobile() ) {
    37                 wp_enqueue_script( 'jquery-touch-punch' );
    38         }
    39 }
    40 
    41 /**
    42  * Fires early before the Widgets administration screen loads,
    43  * after scripts are enqueued.
    44  *
    45  * @since 2.2.0
    46  */
    47 do_action( 'sidebar_admin_setup' );
    48 
    4923$title       = __( 'Widgets' );
    5024$parent_file = 'themes.php';
    5125
    52 get_current_screen()->add_help_tab(
    53         array(
    54                 'id'      => 'overview',
    55                 'title'   => __( 'Overview' ),
    56                 'content' =>
    57                                 '<p>' . __( 'Widgets are independent sections of content that can be placed into any widgetized area provided by your theme (commonly called sidebars). To populate your sidebars/widget areas with individual widgets, drag and drop the title bars into the desired area. By default, only the first widget area is expanded. To populate additional widget areas, click on their title bars to expand them.' ) . '</p>
    58         <p>' . __( 'The Available Widgets section contains all the widgets you can choose from. Once you drag a widget into a sidebar, it will open to allow you to configure its settings. When you are happy with the widget settings, click the Save button and the widget will go live on your site. If you click Delete, it will remove the widget.' ) . '</p>',
    59         )
    60 );
    61 get_current_screen()->add_help_tab(
    62         array(
    63                 'id'      => 'removing-reusing',
    64                 'title'   => __( 'Removing and Reusing' ),
    65                 'content' =>
    66                                 '<p>' . __( 'If you want to remove the widget but save its setting for possible future use, just drag it into the Inactive Widgets area. You can add them back anytime from there. This is especially helpful when you switch to a theme with fewer or different widget areas.' ) . '</p>
    67         <p>' . __( 'Widgets may be used multiple times. You can give each widget a title, to display on your site, but it&#8217;s not required.' ) . '</p>
    68         <p>' . __( 'Enabling Accessibility Mode, via Screen Options, allows you to use Add and Edit buttons instead of using drag and drop.' ) . '</p>',
    69         )
    70 );
    71 get_current_screen()->add_help_tab(
    72         array(
    73                 'id'      => 'missing-widgets',
    74                 'title'   => __( 'Missing Widgets' ),
    75                 'content' =>
    76                                 '<p>' . __( 'Many themes show some sidebar widgets by default until you edit your sidebars, but they are not automatically displayed in your sidebar management tool. After you make your first widget change, you can re-add the default widgets by adding them from the Available Widgets area.' ) . '</p>' .
    77                                         '<p>' . __( 'When changing themes, there is often some variation in the number and setup of widget areas/sidebars and sometimes these conflicts make the transition a bit less smooth. If you changed themes and seem to be missing widgets, scroll down on this screen to the Inactive Widgets area, where all of your widgets and their settings will have been saved.' ) . '</p>',
    78         )
    79 );
    80 
    81 get_current_screen()->set_help_sidebar(
    82         '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
    83         '<p>' . __( '<a href="https://wordpress.org/support/article/appearance-widgets-screen/">Documentation on Widgets</a>' ) . '</p>' .
    84         '<p>' . __( '<a href="https://wordpress.org/support/">Support</a>' ) . '</p>'
    85 );
    86 
    87 if ( ! current_theme_supports( 'widgets' ) ) {
    88         wp_die( __( 'The theme you are currently using isn&#8217;t widget-aware, meaning that it has no sidebars that you are able to change. For information on making your theme widget-aware, please <a href="https://developer.wordpress.org/themes/functionality/widgets/">follow these instructions</a>.' ) );
     26if ( wp_use_widgets_block_editor() ) {
     27        require ABSPATH . 'wp-admin/widgets-form-blocks.php';
     28} else {
     29        require ABSPATH . 'wp-admin/widgets-form.php';
    8930}
    90 
    91 // These are the widgets grouped by sidebar.
    92 $sidebars_widgets = wp_get_sidebars_widgets();
    93 
    94 if ( empty( $sidebars_widgets ) ) {
    95         $sidebars_widgets = wp_get_widget_defaults();
    96 }
    97 
    98 foreach ( $sidebars_widgets as $sidebar_id => $widgets ) {
    99         if ( 'wp_inactive_widgets' === $sidebar_id ) {
    100                 continue;
    101         }
    102 
    103         if ( ! is_registered_sidebar( $sidebar_id ) ) {
    104                 if ( ! empty( $widgets ) ) { // Register the inactive_widgets area as sidebar.
    105                         register_sidebar(
    106                                 array(
    107                                         'name'          => __( 'Inactive Sidebar (not used)' ),
    108                                         'id'            => $sidebar_id,
    109                                         'class'         => 'inactive-sidebar orphan-sidebar',
    110                                         'description'   => __( 'This sidebar is no longer available and does not show anywhere on your site. Remove each of the widgets below to fully remove this inactive sidebar.' ),
    111                                         'before_widget' => '',
    112                                         'after_widget'  => '',
    113                                         'before_title'  => '',
    114                                         'after_title'   => '',
    115                                 )
    116                         );
    117                 } else {
    118                         unset( $sidebars_widgets[ $sidebar_id ] );
    119                 }
    120         }
    121 }
    122 
    123 // Register the inactive_widgets area as sidebar.
    124 register_sidebar(
    125         array(
    126                 'name'          => __( 'Inactive Widgets' ),
    127                 'id'            => 'wp_inactive_widgets',
    128                 'class'         => 'inactive-sidebar',
    129                 'description'   => __( 'Drag widgets here to remove them from the sidebar but keep their settings.' ),
    130                 'before_widget' => '',
    131                 'after_widget'  => '',
    132                 'before_title'  => '',
    133                 'after_title'   => '',
    134         )
    135 );
    136 
    137 retrieve_widgets();
    138 
    139 // We're saving a widget without JS.
    140 if ( isset( $_POST['savewidget'] ) || isset( $_POST['removewidget'] ) ) {
    141         $widget_id = $_POST['widget-id'];
    142         check_admin_referer( "save-delete-widget-$widget_id" );
    143 
    144         $number = isset( $_POST['multi_number'] ) ? (int) $_POST['multi_number'] : '';
    145         if ( $number ) {
    146                 foreach ( $_POST as $key => $val ) {
    147                         if ( is_array( $val ) && preg_match( '/__i__|%i%/', key( $val ) ) ) {
    148                                 $_POST[ $key ] = array( $number => array_shift( $val ) );
    149                                 break;
    150                         }
    151                 }
    152         }
    153 
    154         $sidebar_id = $_POST['sidebar'];
    155         $position   = isset( $_POST[ $sidebar_id . '_position' ] ) ? (int) $_POST[ $sidebar_id . '_position' ] - 1 : 0;
    156 
    157         $id_base = $_POST['id_base'];
    158         $sidebar = isset( $sidebars_widgets[ $sidebar_id ] ) ? $sidebars_widgets[ $sidebar_id ] : array();
    159 
    160         // Delete.
    161         if ( isset( $_POST['removewidget'] ) && $_POST['removewidget'] ) {
    162 
    163                 if ( ! in_array( $widget_id, $sidebar, true ) ) {
    164                         wp_redirect( admin_url( 'widgets.php?error=0' ) );
    165                         exit;
    166                 }
    167 
    168                 $sidebar = array_diff( $sidebar, array( $widget_id ) );
    169                 $_POST   = array(
    170                         'sidebar'            => $sidebar_id,
    171                         'widget-' . $id_base => array(),
    172                         'the-widget-id'      => $widget_id,
    173                         'delete_widget'      => '1',
    174                 );
    175 
    176                 /**
    177                  * Fires immediately after a widget has been marked for deletion.
    178                  *
    179                  * @since 4.4.0
    180                  *
    181                  * @param string $widget_id  ID of the widget marked for deletion.
    182                  * @param string $sidebar_id ID of the sidebar the widget was deleted from.
    183                  * @param string $id_base    ID base for the widget.
    184                  */
    185                 do_action( 'delete_widget', $widget_id, $sidebar_id, $id_base );
    186         }
    187 
    188         $_POST['widget-id'] = $sidebar;
    189 
    190         foreach ( (array) $wp_registered_widget_updates as $name => $control ) {
    191                 if ( $name !== $id_base || ! is_callable( $control['callback'] ) ) {
    192                         continue;
    193                 }
    194 
    195                 ob_start();
    196                         call_user_func_array( $control['callback'], $control['params'] );
    197                 ob_end_clean();
    198 
    199                 break;
    200         }
    201 
    202         $sidebars_widgets[ $sidebar_id ] = $sidebar;
    203 
    204         // Remove old position.
    205         if ( ! isset( $_POST['delete_widget'] ) ) {
    206                 foreach ( $sidebars_widgets as $key => $sb ) {
    207                         if ( is_array( $sb ) ) {
    208                                 $sidebars_widgets[ $key ] = array_diff( $sb, array( $widget_id ) );
    209                         }
    210                 }
    211                 array_splice( $sidebars_widgets[ $sidebar_id ], $position, 0, $widget_id );
    212         }
    213 
    214         wp_set_sidebars_widgets( $sidebars_widgets );
    215         wp_redirect( admin_url( 'widgets.php?message=0' ) );
    216         exit;
    217 }
    218 
    219 // Remove inactive widgets without JS.
    220 if ( isset( $_POST['removeinactivewidgets'] ) ) {
    221         check_admin_referer( 'remove-inactive-widgets', '_wpnonce_remove_inactive_widgets' );
    222 
    223         if ( $_POST['removeinactivewidgets'] ) {
    224                 foreach ( $sidebars_widgets['wp_inactive_widgets'] as $key => $widget_id ) {
    225                         $pieces       = explode( '-', $widget_id );
    226                         $multi_number = array_pop( $pieces );
    227                         $id_base      = implode( '-', $pieces );
    228                         $widget       = get_option( 'widget_' . $id_base );
    229                         unset( $widget[ $multi_number ] );
    230                         update_option( 'widget_' . $id_base, $widget );
    231                         unset( $sidebars_widgets['wp_inactive_widgets'][ $key ] );
    232                 }
    233 
    234                 wp_set_sidebars_widgets( $sidebars_widgets );
    235         }
    236 
    237         wp_redirect( admin_url( 'widgets.php?message=0' ) );
    238         exit;
    239 }
    240 
    241 // Output the widget form without JS.
    242 if ( isset( $_GET['editwidget'] ) && $_GET['editwidget'] ) {
    243         $widget_id = $_GET['editwidget'];
    244 
    245         if ( isset( $_GET['addnew'] ) ) {
    246                 // Default to the first sidebar.
    247                 $keys    = array_keys( $wp_registered_sidebars );
    248                 $sidebar = reset( $keys );
    249 
    250                 if ( isset( $_GET['base'] ) && isset( $_GET['num'] ) ) { // Multi-widget.
    251                         // Copy minimal info from an existing instance of this widget to a new instance.
    252                         foreach ( $wp_registered_widget_controls as $control ) {
    253                                 if ( $_GET['base'] === $control['id_base'] ) {
    254                                         $control_callback                                = $control['callback'];
    255                                         $multi_number                                    = (int) $_GET['num'];
    256                                         $control['params'][0]['number']                  = -1;
    257                                         $control['id']                                   = $control['id_base'] . '-' . $multi_number;
    258                                         $widget_id                                       = $control['id'];
    259                                         $wp_registered_widget_controls[ $control['id'] ] = $control;
    260                                         break;
    261                                 }
    262                         }
    263                 }
    264         }
    265 
    266         if ( isset( $wp_registered_widget_controls[ $widget_id ] ) && ! isset( $control ) ) {
    267                 $control          = $wp_registered_widget_controls[ $widget_id ];
    268                 $control_callback = $control['callback'];
    269         } elseif ( ! isset( $wp_registered_widget_controls[ $widget_id ] ) && isset( $wp_registered_widgets[ $widget_id ] ) ) {
    270                 $name = esc_html( strip_tags( $wp_registered_widgets[ $widget_id ]['name'] ) );
    271         }
    272 
    273         if ( ! isset( $name ) ) {
    274                 $name = esc_html( strip_tags( $control['name'] ) );
    275         }
    276 
    277         if ( ! isset( $sidebar ) ) {
    278                 $sidebar = isset( $_GET['sidebar'] ) ? $_GET['sidebar'] : 'wp_inactive_widgets';
    279         }
    280 
    281         if ( ! isset( $multi_number ) ) {
    282                 $multi_number = isset( $control['params'][0]['number'] ) ? $control['params'][0]['number'] : '';
    283         }
    284 
    285         $id_base = isset( $control['id_base'] ) ? $control['id_base'] : $control['id'];
    286 
    287         // Show the widget form.
    288         $width = ' style="width:' . max( $control['width'], 350 ) . 'px"';
    289         $key   = isset( $_GET['key'] ) ? (int) $_GET['key'] : 0;
    290 
    291         require_once ABSPATH . 'wp-admin/admin-header.php'; ?>
    292         <div class="wrap">
    293         <h1><?php echo esc_html( $title ); ?></h1>
    294         <div class="editwidget"<?php echo $width; ?>>
    295         <h2>
    296         <?php
    297         /* translators: %s: Widget name. */
    298         printf( __( 'Widget %s' ), $name );
    299         ?>
    300         </h2>
    301 
    302         <form action="widgets.php" method="post">
    303         <div class="widget-inside">
    304         <?php
    305         if ( is_callable( $control_callback ) ) {
    306                 call_user_func_array( $control_callback, $control['params'] );
    307         } else {
    308                 echo '<p>' . __( 'There are no options for this widget.' ) . "</p>\n";
    309         }
    310         ?>
    311         </div>
    312 
    313         <p class="describe"><?php _e( 'Select both the sidebar for this widget and the position of the widget in that sidebar.' ); ?></p>
    314         <div class="widget-position">
    315         <table class="widefat"><thead><tr><th><?php _e( 'Sidebar' ); ?></th><th><?php _e( 'Position' ); ?></th></tr></thead><tbody>
    316         <?php
    317         foreach ( $wp_registered_sidebars as $sbname => $sbvalue ) {
    318                 echo "\t\t<tr><td><label><input type='radio' name='sidebar' value='" . esc_attr( $sbname ) . "'" . checked( $sbname, $sidebar, false ) . " /> $sbvalue[name]</label></td><td>";
    319                 if ( 'wp_inactive_widgets' === $sbname || 'orphaned_widgets' === substr( $sbname, 0, 16 ) ) {
    320                         echo '&nbsp;';
    321                 } else {
    322                         if ( ! isset( $sidebars_widgets[ $sbname ] ) || ! is_array( $sidebars_widgets[ $sbname ] ) ) {
    323                                 $j                           = 1;
    324                                 $sidebars_widgets[ $sbname ] = array();
    325                         } else {
    326                                 $j = count( $sidebars_widgets[ $sbname ] );
    327                                 if ( isset( $_GET['addnew'] ) || ! in_array( $widget_id, $sidebars_widgets[ $sbname ], true ) ) {
    328                                         $j++;
    329                                 }
    330                         }
    331                         $selected = '';
    332                         echo "\t\t<select name='{$sbname}_position'>\n";
    333                         echo "\t\t<option value=''>" . __( '&mdash; Select &mdash;' ) . "</option>\n";
    334                         for ( $i = 1; $i <= $j; $i++ ) {
    335                                 if ( in_array( $widget_id, $sidebars_widgets[ $sbname ], true ) ) {
    336                                         $selected = selected( $i, $key + 1, false );
    337                                 }
    338                                 echo "\t\t<option value='$i'$selected> $i </option>\n";
    339                         }
    340                         echo "\t\t</select>\n";
    341                 }
    342                 echo "</td></tr>\n";
    343         }
    344         ?>
    345         </tbody></table>
    346         </div>
    347 
    348         <div class="widget-control-actions">
    349                 <div class="alignleft">
    350                         <?php if ( ! isset( $_GET['addnew'] ) ) : ?>
    351                                 <input type="submit" name="removewidget" id="removewidget" class="button-link button-link-delete widget-control-remove" value="<?php _e( 'Delete' ); ?>" />
    352                                 <span class="widget-control-close-wrapper">
    353                                         | <a href="widgets.php" class="button-link widget-control-close"><?php _e( 'Cancel' ); ?></a>
    354                                 </span>
    355                         <?php else : ?>
    356                                 <a href="widgets.php" class="button-link widget-control-close"><?php _e( 'Cancel' ); ?></a>
    357                         <?php endif; ?>
    358                 </div>
    359                 <div class="alignright">
    360                         <?php submit_button( __( 'Save Widget' ), 'primary alignright', 'savewidget', false ); ?>
    361                         <input type="hidden" name="widget-id" class="widget-id" value="<?php echo esc_attr( $widget_id ); ?>" />
    362                         <input type="hidden" name="id_base" class="id_base" value="<?php echo esc_attr( $id_base ); ?>" />
    363                         <input type="hidden" name="multi_number" class="multi_number" value="<?php echo esc_attr( $multi_number ); ?>" />
    364                         <?php wp_nonce_field( "save-delete-widget-$widget_id" ); ?>
    365                 </div>
    366                 <br class="clear" />
    367         </div>
    368 
    369         </form>
    370         </div>
    371         </div>
    372         <?php
    373         require_once ABSPATH . 'wp-admin/admin-footer.php';
    374         exit;
    375 }
    376 
    377 $messages = array(
    378         __( 'Changes saved.' ),
    379 );
    380 
    381 $errors = array(
    382         __( 'Error while saving.' ),
    383         __( 'Error in displaying the widget settings form.' ),
    384 );
    385 
    386 require_once ABSPATH . 'wp-admin/admin-header.php';
    387 ?>
    388 
    389 <div class="wrap">
    390 <h1 class="wp-heading-inline">
    391 <?php
    392 echo esc_html( $title );
    393 ?>
    394 </h1>
    395 
    396 <?php
    397 if ( current_user_can( 'customize' ) ) {
    398         printf(
    399                 ' <a class="page-title-action hide-if-no-customize" href="%1$s">%2$s</a>',
    400                 esc_url(
    401                         add_query_arg(
    402                                 array(
    403                                         array( 'autofocus' => array( 'panel' => 'widgets' ) ),
    404                                         'return' => urlencode( remove_query_arg( wp_removable_query_args(), wp_unslash( $_SERVER['REQUEST_URI'] ) ) ),
    405                                 ),
    406                                 admin_url( 'customize.php' )
    407                         )
    408                 ),
    409                 __( 'Manage with Live Preview' )
    410         );
    411 }
    412 
    413 $nonce = wp_create_nonce( 'widgets-access' );
    414 ?>
    415 <div class="widget-access-link">
    416         <a id="access-on" href="widgets.php?widgets-access=on&_wpnonce=<?php echo urlencode( $nonce ); ?>"><?php _e( 'Enable accessibility mode' ); ?></a><a id="access-off" href="widgets.php?widgets-access=off&_wpnonce=<?php echo urlencode( $nonce ); ?>"><?php _e( 'Disable accessibility mode' ); ?></a>
    417 </div>
    418 
    419 <hr class="wp-header-end">
    420 
    421 <?php if ( isset( $_GET['message'] ) && isset( $messages[ $_GET['message'] ] ) ) { ?>
    422 <div id="message" class="updated notice is-dismissible"><p><?php echo $messages[ $_GET['message'] ]; ?></p></div>
    423 <?php } ?>
    424 <?php if ( isset( $_GET['error'] ) && isset( $errors[ $_GET['error'] ] ) ) { ?>
    425 <div id="message" class="error"><p><?php echo $errors[ $_GET['error'] ]; ?></p></div>
    426 <?php } ?>
    427 
    428 <?php
    429 /**
    430  * Fires before the Widgets administration page content loads.
    431  *
    432  * @since 3.0.0
    433  */
    434 do_action( 'widgets_admin_page' );
    435 ?>
    436 
    437 <div class="widget-liquid-left">
    438 <div id="widgets-left">
    439         <div id="available-widgets" class="widgets-holder-wrap">
    440                 <div class="sidebar-name">
    441                         <button type="button" class="handlediv hide-if-no-js" aria-expanded="true">
    442                                 <span class="screen-reader-text"><?php _e( 'Available Widgets' ); ?></span>
    443                                 <span class="toggle-indicator" aria-hidden="true"></span>
    444                         </button>
    445                         <h2><?php _e( 'Available Widgets' ); ?> <span id="removing-widget"><?php _ex( 'Deactivate', 'removing-widget' ); ?> <span></span></span></h2>
    446                 </div>
    447                 <div class="widget-holder">
    448                         <div class="sidebar-description">
    449                                 <p class="description"><?php _e( 'To activate a widget drag it to a sidebar or click on it. To deactivate a widget and delete its settings, drag it back.' ); ?></p>
    450                         </div>
    451                         <div id="widget-list">
    452                                 <?php wp_list_widgets(); ?>
    453                         </div>
    454                         <br class='clear' />
    455                 </div>
    456                 <br class="clear" />
    457         </div>
    458 
    459 <?php
    460 
    461 $theme_sidebars = array();
    462 foreach ( $wp_registered_sidebars as $sidebar => $registered_sidebar ) {
    463         if ( false !== strpos( $registered_sidebar['class'], 'inactive-sidebar' ) || 'orphaned_widgets' === substr( $sidebar, 0, 16 ) ) {
    464                 $wrap_class = 'widgets-holder-wrap';
    465                 if ( ! empty( $registered_sidebar['class'] ) ) {
    466                         $wrap_class .= ' ' . $registered_sidebar['class'];
    467                 }
    468 
    469                 $is_inactive_widgets = 'wp_inactive_widgets' === $registered_sidebar['id'];
    470                 ?>
    471                 <div class="<?php echo esc_attr( $wrap_class ); ?>">
    472                         <div class="widget-holder inactive">
    473                                 <?php wp_list_widget_controls( $registered_sidebar['id'], $registered_sidebar['name'] ); ?>
    474 
    475                                 <?php if ( $is_inactive_widgets ) { ?>
    476                                 <div class="remove-inactive-widgets">
    477                                         <form action="" method="post">
    478                                                 <p>
    479                                                         <?php
    480                                                         $attributes = array( 'id' => 'inactive-widgets-control-remove' );
    481 
    482                                                         if ( empty( $sidebars_widgets['wp_inactive_widgets'] ) ) {
    483                                                                 $attributes['disabled'] = '';
    484                                                         }
    485 
    486                                                         submit_button( __( 'Clear Inactive Widgets' ), 'delete', 'removeinactivewidgets', false, $attributes );
    487                                                         ?>
    488                                                         <span class="spinner"></span>
    489                                                 </p>
    490                                                 <?php wp_nonce_field( 'remove-inactive-widgets', '_wpnonce_remove_inactive_widgets' ); ?>
    491                                         </form>
    492                                 </div>
    493                                 <?php } ?>
    494                         </div>
    495                         <?php if ( $is_inactive_widgets ) { ?>
    496                         <p class="description"><?php _e( 'This will clear all items from the inactive widgets list. You will not be able to restore any customizations.' ); ?></p>
    497                         <?php } ?>
    498                 </div>
    499                 <?php
    500 
    501         } else {
    502                 $theme_sidebars[ $sidebar ] = $registered_sidebar;
    503         }
    504 }
    505 
    506 ?>
    507 </div>
    508 </div>
    509 <?php
    510 
    511 $i                    = 0;
    512 $split                = 0;
    513 $single_sidebar_class = '';
    514 $sidebars_count       = count( $theme_sidebars );
    515 
    516 if ( $sidebars_count > 1 ) {
    517         $split = (int) ceil( $sidebars_count / 2 );
    518 } else {
    519         $single_sidebar_class = ' single-sidebar';
    520 }
    521 
    522 ?>
    523 <div class="widget-liquid-right">
    524 <div id="widgets-right" class="wp-clearfix<?php echo $single_sidebar_class; ?>">
    525 <div class="sidebars-column-1">
    526 <?php
    527 
    528 foreach ( $theme_sidebars as $sidebar => $registered_sidebar ) {
    529         $wrap_class = 'widgets-holder-wrap';
    530         if ( ! empty( $registered_sidebar['class'] ) ) {
    531                 $wrap_class .= ' sidebar-' . $registered_sidebar['class'];
    532         }
    533 
    534         if ( $i > 0 ) {
    535                 $wrap_class .= ' closed';
    536         }
    537 
    538         if ( $split && $i === $split ) {
    539                 ?>
    540                 </div><div class="sidebars-column-2">
    541                 <?php
    542         }
    543 
    544         ?>
    545         <div class="<?php echo esc_attr( $wrap_class ); ?>">
    546                 <?php
    547                 // Show the control forms for each of the widgets in this sidebar.
    548                 wp_list_widget_controls( $sidebar, $registered_sidebar['name'] );
    549                 ?>
    550         </div>
    551         <?php
    552 
    553         $i++;
    554 }
    555 
    556 ?>
    557 </div>
    558 </div>
    559 </div>
    560 <form method="post">
    561 <?php wp_nonce_field( 'save-sidebar-widgets', '_wpnonce_widgets', false ); ?>
    562 </form>
    563 <br class="clear" />
    564 </div>
    565 
    566 <div class="widgets-chooser">
    567         <ul class="widgets-chooser-sidebars"></ul>
    568         <div class="widgets-chooser-actions">
    569                 <button class="button widgets-chooser-cancel"><?php _e( 'Cancel' ); ?></button>
    570                 <button class="button button-primary widgets-chooser-add"><?php _e( 'Add Widget' ); ?></button>
    571         </div>
    572 </div>
    573 
    574 <?php
    575 
    576 /**
    577  * Fires after the available widgets and sidebars have loaded, before the admin footer.
    578  *
    579  * @since 2.2.0
    580  */
    581 do_action( 'sidebar_admin_page' );
    582 require_once ABSPATH . 'wp-admin/admin-footer.php';
  • trunk/src/wp-includes/assets/script-loader-packages.php

    r50945 r50996  
    1 <?php return array('a11y.js' => array('dependencies' => array('wp-dom-ready', 'wp-i18n', 'wp-polyfill'), 'version' => '3243bf46da298d46850bacd71bcc111e'), 'annotations.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text'), 'version' => '4556c7bbdf2d9d6a81c1ca770cf73893'), 'api-fetch.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '293ce6ecd6439249249485d369385617'), 'autop.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'bed28c77ea305cd8e02b0529011189f9'), 'blob.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'b8855b04f6a52a7bca89f8d945d46866'), 'block-directory.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives'), 'version' => 'b471a46218b45512872b205f5684f390'), 'block-editor.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-shortcode', 'wp-token-list', 'wp-url', 'wp-wordcount'), 'version' => 'a812200273a231e6d260752aac4f2947'), 'block-library.js' => array('dependencies' => array('lodash', 'moment', 'react', 'wp-api-fetch', 'wp-autop', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport'), 'version' => '2601f7a7e52d8f54bf93cdb9945634c5'), 'block-serialization-default-parser.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'cc8e5d0e23cf68bb9944bf2a7a016e52'), 'blocks.js' => array('dependencies' => array('lodash', 'wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-primitives', 'wp-shortcode'), 'version' => 'dbaa28491a5400f286411e645eda7fe9'), 'components.js' => array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-a11y', 'wp-compose', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-warning'), 'version' => 'a128962c30c40d721c962a0a170f9040'), 'compose.js' => array('dependencies' => array('lodash', 'react', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-priority-queue'), 'version' => 'c6d0b8dc5425477346847d4ad0688185'), 'core-data.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-data', 'wp-data-controls', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-url'), 'version' => '7e9c84364a96530d0702ecf7e6247aa8'), 'data.js' => array('dependencies' => array('lodash', 'react', 'wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-redux-routine'), 'version' => '9f1a3d6ac652e9da7ef51f01de8243a0'), 'data-controls.js' => array('dependencies' => array('wp-api-fetch', 'wp-data', 'wp-deprecated', 'wp-polyfill'), 'version' => 'ceef9ce8c9c058d69ebf44db39353687'), 'date.js' => array('dependencies' => array('moment', 'wp-polyfill'), 'version' => '2abad43cdd2da929e01f7d7648e392ab'), 'deprecated.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => '13724e4923d40e224e7c99fdc350a6a1'), 'dom.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'd964a25eeb2e148dbb51da5fad4cc9fe'), 'dom-ready.js' => array('dependencies' => array('wp-polyfill'), 'version' => '1e1b9c1535c1c32d3236d41aa27c7bf9'), 'edit-post.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-url', 'wp-viewport', 'wp-warning'), 'version' => '96479639a321f93a46a968730f904911'), 'editor.js' => array('dependencies' => array('lodash', 'react', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-date', 'wp-deprecated', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-wordcount'), 'version' => '0fdbd123c5f1dff84770a0e41ed87984'), 'element.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '669f5c11ca4fe7c44d64157347343913'), 'escape-html.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4f03d9c45a01df8191f6833373fe1cfa'), 'format-library.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => 'eb83de0befbc72e594aab5d708ca128e'), 'hooks.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'f7ecf196f38940ae0673c46c6c30cd86'), 'html-entities.js' => array('dependencies' => array('wp-polyfill'), 'version' => '140ecb91be91e7eec34220584d085033'), 'i18n.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => 'd897c43bea0c2753dd7368eb2d990898'), 'is-shallow-equal.js' => array('dependencies' => array('wp-polyfill'), 'version' => '798b660598677b39413fdb5f68624aa8'), 'keyboard-shortcuts.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-keycodes', 'wp-polyfill'), 'version' => '8a860f4afab68874dffb1e7eec6c1bc1'), 'keycodes.js' => array('dependencies' => array('lodash', 'wp-i18n', 'wp-polyfill'), 'version' => 'cf38e80b47baf72f4822ddb8847f4f24'), 'list-reusable-blocks.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '80af68069161321e8e131bad6a00d5dc'), 'media-utils.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'df373dcd13d7abc3f8b042f369b88557'), 'notices.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-polyfill'), 'version' => 'b08e53c1e070954fa0884cad9a164683'), 'nux.js' => array('dependencies' => array('lodash', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '0575a03bf7a434453e3768c23cd45a54'), 'plugins.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill', 'wp-primitives'), 'version' => 'f976fd36733989ed2c1409c712cd0e02'), 'primitives.js' => array('dependencies' => array('wp-element', 'wp-polyfill'), 'version' => 'dc0962ac2885a26f8c2abdbe0cf0e333'), 'priority-queue.js' => array('dependencies' => array('wp-polyfill'), 'version' => '18c93919f04bb681234310b314675b17'), 'redux-routine.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '3c50c6bd1563bc7fb88433198400a74c'), 'reusable-blocks.js' => array('dependencies' => array('lodash', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => 'ec5d97a08f4ba305bcc6f0de27fda10f'), 'rich-text.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-escape-html', 'wp-keycodes', 'wp-polyfill'), 'version' => '17198c4dd83a20f1f820c6cf500bd5f1'), 'server-side-render.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '7c732c1add9f9667bdf8dd66fbf74759'), 'shortcode.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '15757929bc8d52a3b184c3fcaeb38c64'), 'token-list.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '7bcd3684420783ef1f6ebb7680fe958e'), 'url.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'e9868cffba8a348b31011f87dd53b3c4'), 'viewport.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => '0a54bbdc44c5f135018c568a887b8279'), 'warning.js' => array('dependencies' => array('wp-polyfill'), 'version' => '202ac16e99afe7c33c257b248625a947'), 'wordcount.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '02339c8ad03da1e7a03f9212da004007'));
     1<?php return array('a11y.js' => array('dependencies' => array('wp-dom-ready', 'wp-i18n', 'wp-polyfill'), 'version' => '3243bf46da298d46850bacd71bcc111e'), 'annotations.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text'), 'version' => '4556c7bbdf2d9d6a81c1ca770cf73893'), 'api-fetch.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '293ce6ecd6439249249485d369385617'), 'autop.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'bed28c77ea305cd8e02b0529011189f9'), 'blob.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'b8855b04f6a52a7bca89f8d945d46866'), 'block-directory.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives'), 'version' => 'b471a46218b45512872b205f5684f390'), 'block-editor.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-shortcode', 'wp-token-list', 'wp-url', 'wp-wordcount'), 'version' => '927dc1a8606097f0469f0c17289e43b5'), 'block-library.js' => array('dependencies' => array('lodash', 'moment', 'react', 'wp-api-fetch', 'wp-autop', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport'), 'version' => 'e7b7530300d138c846fa48ebce04182c'), 'block-serialization-default-parser.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'cc8e5d0e23cf68bb9944bf2a7a016e52'), 'blocks.js' => array('dependencies' => array('lodash', 'wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-primitives', 'wp-shortcode'), 'version' => 'dbaa28491a5400f286411e645eda7fe9'), 'components.js' => array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-a11y', 'wp-compose', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-warning'), 'version' => 'a128962c30c40d721c962a0a170f9040'), 'compose.js' => array('dependencies' => array('lodash', 'react', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-priority-queue'), 'version' => 'c6d0b8dc5425477346847d4ad0688185'), 'core-data.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-data', 'wp-data-controls', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-url'), 'version' => '7e9c84364a96530d0702ecf7e6247aa8'), 'customize-widgets.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-polyfill', 'wp-primitives', 'wp-widgets'), 'version' => 'ef58a9c27a99310c423ffb7fe74b9617'), 'data.js' => array('dependencies' => array('lodash', 'react', 'wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-redux-routine'), 'version' => '9f1a3d6ac652e9da7ef51f01de8243a0'), 'data-controls.js' => array('dependencies' => array('wp-api-fetch', 'wp-data', 'wp-deprecated', 'wp-polyfill'), 'version' => 'ceef9ce8c9c058d69ebf44db39353687'), 'date.js' => array('dependencies' => array('moment', 'wp-polyfill'), 'version' => '2abad43cdd2da929e01f7d7648e392ab'), 'deprecated.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => '13724e4923d40e224e7c99fdc350a6a1'), 'dom.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'd964a25eeb2e148dbb51da5fad4cc9fe'), 'dom-ready.js' => array('dependencies' => array('wp-polyfill'), 'version' => '1e1b9c1535c1c32d3236d41aa27c7bf9'), 'edit-post.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-url', 'wp-viewport', 'wp-warning'), 'version' => '96479639a321f93a46a968730f904911'), 'edit-widgets.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-widgets'), 'version' => 'e573e5743f31c14c6550cbf475612924'), 'editor.js' => array('dependencies' => array('lodash', 'react', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-data-controls', 'wp-date', 'wp-deprecated', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-wordcount'), 'version' => '0fdbd123c5f1dff84770a0e41ed87984'), 'element.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '669f5c11ca4fe7c44d64157347343913'), 'escape-html.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4f03d9c45a01df8191f6833373fe1cfa'), 'format-library.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => 'eb83de0befbc72e594aab5d708ca128e'), 'hooks.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'f7ecf196f38940ae0673c46c6c30cd86'), 'html-entities.js' => array('dependencies' => array('wp-polyfill'), 'version' => '140ecb91be91e7eec34220584d085033'), 'i18n.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => 'd897c43bea0c2753dd7368eb2d990898'), 'is-shallow-equal.js' => array('dependencies' => array('wp-polyfill'), 'version' => '798b660598677b39413fdb5f68624aa8'), 'keyboard-shortcuts.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-keycodes', 'wp-polyfill'), 'version' => '8a860f4afab68874dffb1e7eec6c1bc1'), 'keycodes.js' => array('dependencies' => array('lodash', 'wp-i18n', 'wp-polyfill'), 'version' => 'cf38e80b47baf72f4822ddb8847f4f24'), 'list-reusable-blocks.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '80af68069161321e8e131bad6a00d5dc'), 'media-utils.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'df373dcd13d7abc3f8b042f369b88557'), 'notices.js' => array('dependencies' => array('lodash', 'wp-data', 'wp-polyfill'), 'version' => 'b08e53c1e070954fa0884cad9a164683'), 'nux.js' => array('dependencies' => array('lodash', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '0575a03bf7a434453e3768c23cd45a54'), 'plugins.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill', 'wp-primitives'), 'version' => 'f976fd36733989ed2c1409c712cd0e02'), 'primitives.js' => array('dependencies' => array('wp-element', 'wp-polyfill'), 'version' => 'dc0962ac2885a26f8c2abdbe0cf0e333'), 'priority-queue.js' => array('dependencies' => array('wp-polyfill'), 'version' => '18c93919f04bb681234310b314675b17'), 'redux-routine.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '3c50c6bd1563bc7fb88433198400a74c'), 'reusable-blocks.js' => array('dependencies' => array('lodash', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => 'ec5d97a08f4ba305bcc6f0de27fda10f'), 'rich-text.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-escape-html', 'wp-keycodes', 'wp-polyfill'), 'version' => '17198c4dd83a20f1f820c6cf500bd5f1'), 'server-side-render.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '7c732c1add9f9667bdf8dd66fbf74759'), 'shortcode.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '15757929bc8d52a3b184c3fcaeb38c64'), 'token-list.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '7bcd3684420783ef1f6ebb7680fe958e'), 'url.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'e9868cffba8a348b31011f87dd53b3c4'), 'viewport.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => '0a54bbdc44c5f135018c568a887b8279'), 'warning.js' => array('dependencies' => array('wp-polyfill'), 'version' => '202ac16e99afe7c33c257b248625a947'), 'widgets.js' => array('dependencies' => array('wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '71f70729a158b4f607a172e7f488545b'), 'wordcount.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '02339c8ad03da1e7a03f9212da004007'));
  • trunk/src/wp-includes/block-editor.php

    r50983 r50996  
    226226        }
    227227
     228        /**
     229         * Filters the list of widget-type IDs that should **not** be offered by the
     230         * Legacy Widget block.
     231         *
     232         * Returning an empty array will make all widgets available.
     233         *
     234         * @since 5.8.0
     235         *
     236         * @param array $widgets An array of excluded widget-type IDs.
     237         */
     238        $editor_settings['widgetTypesToHideFromLegacyWidgetBlock'] = apply_filters(
     239                'widget_types_to_hide_from_legacy_widget_block',
     240                array(
     241                        'pages',
     242                        'calendar',
     243                        'archives',
     244                        'media_audio',
     245                        'media_image',
     246                        'media_gallery',
     247                        'media_video',
     248                        'meta',
     249                        'search',
     250                        'text',
     251                        'categories',
     252                        'recent-posts',
     253                        'recent-comments',
     254                        'rss',
     255                        'tag_cloud',
     256                        'nav_menu',
     257                        'custom_html',
     258                        'block',
     259                )
     260        );
     261
    228262        return $editor_settings;
    229263}
  • trunk/src/wp-includes/blocks/index.php

    r50945 r50996  
    1414require ABSPATH . WPINC . '/blocks/latest-comments.php';
    1515require ABSPATH . WPINC . '/blocks/latest-posts.php';
     16require ABSPATH . WPINC . '/blocks/legacy-widget.php';
    1617require ABSPATH . WPINC . '/blocks/loginout.php';
    1718require ABSPATH . WPINC . '/blocks/post-content.php';
  • trunk/src/wp-includes/class-wp-customize-control.php

    r49181 r50996  
    796796 */
    797797require_once ABSPATH . WPINC . '/customize/class-wp-customize-date-time-control.php';
     798
     799/**
     800 * WP_Sidebar_Block_Editor_Control class.
     801 */
     802require_once ABSPATH . WPINC . '/customize/class-wp-sidebar-block-editor-control.php';
  • trunk/src/wp-includes/class-wp-customize-widgets.php

    r49108 r50996  
    119119                add_action( 'customize_preview_init', array( $this, 'customize_preview_init' ) );
    120120                add_filter( 'customize_refresh_nonces', array( $this, 'refresh_nonces' ) );
     121                add_filter( 'should_load_block_editor_scripts_and_styles', array( $this, 'should_load_block_editor_scripts_and_styles' ) );
    121122
    122123                add_action( 'dynamic_sidebar', array( $this, 'tally_rendered_widgets' ) );
    … …  
    368369        public function customize_register() {
    369370                global $wp_registered_widgets, $wp_registered_widget_controls, $wp_registered_sidebars;
     371
     372                $use_widgets_block_editor = wp_use_widgets_block_editor();
    370373
    371374                add_filter( 'sidebars_widgets', array( $this, 'preview_sidebars_widgets' ), 1 );
    … …  
    447450
    448451                                        $section_args = array(
    449                                                 'title'       => $wp_registered_sidebars[ $sidebar_id ]['name'],
    450                                                 'description' => $wp_registered_sidebars[ $sidebar_id ]['description'],
    451                                                 'priority'    => array_search( $sidebar_id, array_keys( $wp_registered_sidebars ), true ),
    452                                                 'panel'       => 'widgets',
    453                                                 'sidebar_id'  => $sidebar_id,
     452                                                'title'      => $wp_registered_sidebars[ $sidebar_id ]['name'],
     453                                                'priority'   => array_search( $sidebar_id, array_keys( $wp_registered_sidebars ), true ),
     454                                                'panel'      => 'widgets',
     455                                                'sidebar_id' => $sidebar_id,
    454456                                        );
     457
     458                                        if ( $use_widgets_block_editor ) {
     459                                                $section_args['description'] = '';
     460                                        } else {
     461                                                $section_args['description'] = $wp_registered_sidebars[ $sidebar_id ]['description'];
     462                                        }
    455463
    456464                                        /**
    … …  
    468476                                        $this->manager->add_section( $section );
    469477
    470                                         $control           = new WP_Widget_Area_Customize_Control(
     478                                        if ( $use_widgets_block_editor ) {
     479                                                $control = new WP_Sidebar_Block_Editor_Control(
     480                                                        $this->manager,
     481                                                        $setting_id,
     482                                                        array(
     483                                                                'section'    => $section_id,
     484                                                                'sidebar_id' => $sidebar_id,
     485                                                        )
     486                                                );
     487                                        } else {
     488                                                $control = new WP_Widget_Area_Customize_Control(
     489                                                        $this->manager,
     490                                                        $setting_id,
     491                                                        array(
     492                                                                'section'    => $section_id,
     493                                                                'sidebar_id' => $sidebar_id,
     494                                                                'priority'   => count( $sidebar_widget_ids ), // place 'Add Widget' and 'Reorder' buttons at end.
     495                                                        )
     496                                                );
     497                                        }
     498
     499                                        $this->manager->add_control( $control );
     500
     501                                        $new_setting_ids[] = $setting_id;
     502                                }
     503                        }
     504
     505                        if ( ! $use_widgets_block_editor ) {
     506                                // Add a control for each active widget (located in a sidebar).
     507                                foreach ( $sidebar_widget_ids as $i => $widget_id ) {
     508
     509                                        // Skip widgets that may have gone away due to a plugin being deactivated.
     510                                        if ( ! $is_active_sidebar || ! isset( $wp_registered_widgets[ $widget_id ] ) ) {
     511                                                continue;
     512                                        }
     513
     514                                        $registered_widget = $wp_registered_widgets[ $widget_id ];
     515                                        $setting_id        = $this->get_setting_id( $widget_id );
     516                                        $id_base           = $wp_registered_widget_controls[ $widget_id ]['id_base'];
     517
     518                                        $control = new WP_Widget_Form_Customize_Control(
    471519                                                $this->manager,
    472520                                                $setting_id,
    473521                                                array(
    474                                                         'section'    => $section_id,
    475                                                         'sidebar_id' => $sidebar_id,
    476                                                         'priority'   => count( $sidebar_widget_ids ), // place 'Add Widget' and 'Reorder' buttons at end.
     522                                                        'label'          => $registered_widget['name'],
     523                                                        'section'        => $section_id,
     524                                                        'sidebar_id'     => $sidebar_id,
     525                                                        'widget_id'      => $widget_id,
     526                                                        'widget_id_base' => $id_base,
     527                                                        'priority'       => $i,
     528                                                        'width'          => $wp_registered_widget_controls[ $widget_id ]['width'],
     529                                                        'height'         => $wp_registered_widget_controls[ $widget_id ]['height'],
     530                                                        'is_wide'        => $this->is_wide_widget( $widget_id ),
    477531                                                )
    478532                                        );
    479                                         $new_setting_ids[] = $setting_id;
    480 
    481533                                        $this->manager->add_control( $control );
    482534                                }
    483                         }
    484 
    485                         // Add a control for each active widget (located in a sidebar).
    486                         foreach ( $sidebar_widget_ids as $i => $widget_id ) {
    487 
    488                                 // Skip widgets that may have gone away due to a plugin being deactivated.
    489                                 if ( ! $is_active_sidebar || ! isset( $wp_registered_widgets[ $widget_id ] ) ) {
    490                                         continue;
    491                                 }
    492 
    493                                 $registered_widget = $wp_registered_widgets[ $widget_id ];
    494                                 $setting_id        = $this->get_setting_id( $widget_id );
    495                                 $id_base           = $wp_registered_widget_controls[ $widget_id ]['id_base'];
    496 
    497                                 $control = new WP_Widget_Form_Customize_Control(
    498                                         $this->manager,
    499                                         $setting_id,
    500                                         array(
    501                                                 'label'          => $registered_widget['name'],
    502                                                 'section'        => $section_id,
    503                                                 'sidebar_id'     => $sidebar_id,
    504                                                 'widget_id'      => $widget_id,
    505                                                 'widget_id_base' => $id_base,
    506                                                 'priority'       => $i,
    507                                                 'width'          => $wp_registered_widget_controls[ $widget_id ]['width'],
    508                                                 'height'         => $wp_registered_widget_controls[ $widget_id ]['height'],
    509                                                 'is_wide'        => $this->is_wide_widget( $widget_id ),
    510                                         )
    511                                 );
    512                                 $this->manager->add_control( $control );
    513535                        }
    514536                }
    … …  
    806828                        sprintf( 'var _wpCustomizeWidgetsSettings = %s;', wp_json_encode( $settings ) )
    807829                );
     830
     831                // TODO: Update 'wp-customize-widgets' to not rely so much on things in
     832                // 'customize-widgets'. This will let us skip most of the above and not
     833                // enqueue 'customize-widgets' which saves bytes.
     834
     835                if ( wp_use_widgets_block_editor() ) {
     836                        $block_editor_context = new WP_Block_Editor_Context();
     837
     838                        $editor_settings = get_block_editor_settings( array(), $block_editor_context );
     839
     840                        wp_add_inline_script(
     841                                'wp-customize-widgets',
     842                                sprintf(
     843                                        'wp.domReady( function() {
     844                                           wp.customizeWidgets.initialize( "widgets-customizer", %s );
     845                                        } );',
     846                                        wp_json_encode( $editor_settings )
     847                                )
     848                        );
     849
     850                        // Preload server-registered block schemas.
     851                        wp_add_inline_script(
     852                                'wp-blocks',
     853                                'wp.blocks.unstable__bootstrapServerSideBlockDefinitions(' . wp_json_encode( get_block_editor_server_block_settings() ) . ');'
     854                        );
     855
     856                        wp_add_inline_script(
     857                                'wp-blocks',
     858                                sprintf( 'wp.blocks.setCategories( %s );', wp_json_encode( get_block_categories( 'widgets-customizer' ) ) ),
     859                                'after'
     860                        );
     861
     862                        wp_enqueue_script( 'wp-customize-widgets' );
     863                        wp_enqueue_style( 'wp-customize-widgets' );
     864                        wp_enqueue_script( 'wp-format-library' );
     865                        wp_enqueue_style( 'wp-format-library' );
     866
     867                        /** This action is documented in edit-form-blocks.php */
     868                        do_action( 'enqueue_block_editor_assets' );
     869                }
    808870        }
    809871
    … …  
    889951                        $args['transport']            = current_theme_supports( 'customize-selective-refresh-widgets' ) ? 'postMessage' : 'refresh';
    890952                } elseif ( preg_match( $this->setting_id_patterns['widget_instance'], $id, $matches ) ) {
    891                         $args['sanitize_callback']    = array( $this, 'sanitize_widget_instance' );
    892                         $args['sanitize_js_callback'] = array( $this, 'sanitize_widget_js_instance' );
     953                        $id_base                      = $matches['id_base'];
     954                        $args['sanitize_callback']    = function( $value ) use ( $id_base ) {
     955                                return $this->sanitize_widget_instance( $value, $id_base );
     956                        };
     957                        $args['sanitize_js_callback'] = function( $value ) use ( $id_base ) {
     958                                return $this->sanitize_widget_js_instance( $value, $id_base );
     959                        };
    893960                        $args['transport']            = $this->is_widget_selective_refreshable( $matches['id_base'] ) ? 'postMessage' : 'refresh';
    894961                }
    … …  
    11101177
    11111178        /**
     1179         * Tells the script loader to load the scripts and styles of custom blocks
     1180         * if the widgets block editor is enabled.
     1181         *
     1182         * @since 5.8.0
     1183         *
     1184         * @param bool $is_block_editor_screen Current decision about loading block assets.
     1185         * @return bool Filtered decision about loading block assets.
     1186         */
     1187        public function should_load_block_editor_scripts_and_styles( $is_block_editor_screen ) {
     1188                if ( wp_use_widgets_block_editor() ) {
     1189                        return true;
     1190                }
     1191
     1192                return $is_block_editor_screen;
     1193        }
     1194
     1195        /**
    11121196         * When previewing, ensures the proper previewing widgets are used.
    11131197         *
    … …  
    13151399         *
    13161400         * @param array $value Widget instance to sanitize.
     1401         * @param string $id_base Base of the ID of the widget being sanitized.
    13171402         * @return array|void Sanitized widget instance.
    13181403         */
    1319         public function sanitize_widget_instance( $value ) {
     1404        public function sanitize_widget_instance( $value, $id_base = null ) {
     1405                global $wp_widget_factory;
     1406
    13201407                if ( array() === $value ) {
    1321                         return $value;
    1322                 }
    1323 
    1324                 if ( empty( $value['is_widget_customizer_js_value'] )
    1325                         || empty( $value['instance_hash_key'] )
    1326                         || empty( $value['encoded_serialized_instance'] ) ) {
     1408                        return;
     1409                }
     1410
     1411                if ( isset( $value['raw_instance'] ) && $id_base && wp_use_widgets_block_editor() ) {
     1412                        $widget_object = $wp_widget_factory->get_widget_object( $id_base );
     1413                        if ( ! empty( $widget_object->widget_options['show_instance_in_rest'] ) ) {
     1414                                return $value['raw_instance'];
     1415                        }
     1416                }
     1417
     1418                if (
     1419                        empty( $value['is_widget_customizer_js_value'] ) ||
     1420                        empty( $value['instance_hash_key'] ) ||
     1421                        empty( $value['encoded_serialized_instance'] )
     1422                ) {
    13271423                        return;
    13281424                }
    … …  
    13511447         *
    13521448         * @param array $value Widget instance to convert to JSON.
     1449         * @param string $id_base Base of the ID of the widget being sanitized.
    13531450         * @return array JSON-converted widget instance.
    13541451         */
    1355         public function sanitize_widget_js_instance( $value ) {
     1452        public function sanitize_widget_js_instance( $value, $id_base = null ) {
     1453                global $wp_widget_factory;
     1454
    13561455                if ( empty( $value['is_widget_customizer_js_value'] ) ) {
    13571456                        $serialized = serialize( $value );
    13581457
    1359                         $value = array(
     1458                        $js_value = array(
    13601459                                'encoded_serialized_instance'   => base64_encode( $serialized ),
    13611460                                'title'                         => empty( $value['title'] ) ? '' : $value['title'],
    … …  
    13631462                                'instance_hash_key'             => $this->get_instance_hash_key( $serialized ),
    13641463                        );
    1365                 }
     1464
     1465                        if ( $id_base && wp_use_widgets_block_editor() ) {
     1466                                $widget_object = $wp_widget_factory->get_widget_object( $id_base );
     1467                                if ( ! empty( $widget_object->widget_options['show_instance_in_rest'] ) ) {
     1468                                        $js_value['raw_instance'] = (object) $value;
     1469                                }
     1470                        }
     1471
     1472                        return $js_value;
     1473                }
     1474
    13661475                return $value;
    13671476        }
    … …  
    14331542                        }
    14341543
    1435                         $instance = $this->sanitize_widget_instance( $sanitized_widget_setting );
     1544                        $instance = $this->sanitize_widget_instance( $sanitized_widget_setting, $parsed_id['id_base'] );
    14361545                        if ( is_null( $instance ) ) {
    14371546                                $this->stop_capturing_option_updates();
    … …  
    14991608                 * instead of the default widget instance value (an empty array).
    15001609                 */
    1501                 $this->manager->set_post_value( $setting_id, $this->sanitize_widget_js_instance( $instance ) );
     1610                $this->manager->set_post_value( $setting_id, $this->sanitize_widget_js_instance( $instance, $parsed_id['id_base'] ) );
    15021611
    15031612                // Obtain the widget control with the updated instance in place.
    … …  
    15721681
    15731682                $form     = $updated_widget['form'];
    1574                 $instance = $this->sanitize_widget_js_instance( $updated_widget['instance'] );
     1683                $instance = $this->sanitize_widget_js_instance( $updated_widget['instance'], $id_base );
    15751684
    15761685                wp_send_json_success( compact( 'form', 'instance' ) );
  • trunk/src/wp-includes/script-loader.php

    r50992 r50996  
    15531553                'reusable-blocks'      => array( 'wp-components' ),
    15541554                'nux'                  => array( 'wp-components' ),
     1555                'edit-widgets'         => array(
     1556                        'wp-components',
     1557                        'wp-block-editor',
     1558                        'wp-edit-blocks',
     1559                        'wp-block-library',
     1560                        'wp-reusable-blocks',
     1561                ),
     1562                'customize-widgets'    => array(
     1563                        'wp-components',
     1564                        'wp-block-editor',
     1565                        'wp-edit-blocks',
     1566                        'wp-block-library',
     1567                        'wp-reusable-blocks',
     1568                ),
    15551569        );
    15561570
  • trunk/src/wp-includes/widgets.php

    r50995 r50996  
    18021802        register_widget( 'WP_Widget_Block' );
    18031803
     1804        add_theme_support( 'widgets-block-editor' );
     1805
    18041806        /**
    18051807         * Fires after all default WordPress widgets have been registered.
    … …  
    18081810         */
    18091811        do_action( 'widgets_init' );
     1812}
     1813
     1814/**
     1815 * Whether or not to use the block editor to manage widgets. Defaults to true
     1816 * unless a theme has removed support for widgets-block-editor or a plugin has
     1817 * filtered the return value of this function.
     1818 *
     1819 * @since 5.8.0
     1820 *
     1821 * @return boolean Whether or not to use the block editor to manage widgets.
     1822 */
     1823function wp_use_widgets_block_editor() {
     1824        /**
     1825         * Filters whether or not to use the block editor to manage widgets.
     1826         *
     1827         * @param boolean $use_widgets_block_editor Whether or not to use the block editor to manage widgets.
     1828         */
     1829        return apply_filters(
     1830                'use_widgets_block_editor',
     1831                get_theme_support( 'widgets-block-editor' )
     1832        );
    18101833}
    18111834
    … …  
    19721995        return ob_get_clean();
    19731996}
     1997
     1998// Needed until src/blocks/legacy-widget/index.php in @wordpress/block-library
     1999// is updated to use the 'wp_' functions.
     2000function gutenberg_find_widgets_sidebar( $widget_id ) {
     2001        return wp_find_widgets_sidebar( $widget_id );
     2002}
     2003function gutenberg_render_widget( $widget_id, $sidebar_id ) {
     2004        return wp_render_widget( $widget_id, $sidebar_id );
     2005}
     2006function gutenberg_get_widget_object( $id_base ) {
     2007        global $wp_widget_factory;
     2008        return $wp_widget_factory->get_widget_object( $id_base );
     2009}
  • trunk/tests/phpunit/includes/functions.php

    r50982 r50996  
    311311        remove_action( 'init', 'register_block_core_latest_comments' );
    312312        remove_action( 'init', 'register_block_core_latest_posts' );
     313        remove_action( 'init', 'register_block_core_legacy_widget', 20 );
    313314        remove_action( 'init', 'register_block_core_post_author' );
    314315        remove_action( 'init', 'register_block_core_post_content' );
  • trunk/tests/phpunit/tests/blocks/block-editor.php

    r50983 r50996  
    160160                $settings = get_default_block_editor_settings();
    161161
    162                 $this->assertCount( 16, $settings );
     162                $this->assertCount( 17, $settings );
    163163                $this->assertFalse( $settings['alignWide'] );
    164164                $this->assertInternalType( 'array', $settings['allowedMimeTypes'] );
    … …  
    255255                );
    256256                $this->assertInternalType( 'int', $settings['maxUploadFileSize'] );
     257                $this->assertSameSets(
     258                        array(
     259                                'archives',
     260                                'block',
     261                                'calendar',
     262                                'categories',
     263                                'custom_html',
     264                                'media_audio',
     265                                'media_gallery',
     266                                'media_image',
     267                                'media_video',
     268                                'meta',
     269                                'nav_menu',
     270                                'pages',
     271                                'recent-comments',
     272                                'recent-posts',
     273                                'rss',
     274                                'search',
     275                                'tag_cloud',
     276                                'text',
     277                        ),
     278                        $settings['widgetTypesToHideFromLegacyWidgetBlock']
     279                );
    257280        }
    258281
  • trunk/tests/phpunit/tests/customize/widgets.php

    r49108 r50996  
    2626
    2727                add_theme_support( 'customize-selective-refresh-widgets' );
     28                add_action( 'widgets_init', array( $this, 'remove_widgets_block_editor' ) );
    2829                $user_id = self::factory()->user->create( array( 'role' => 'administrator' ) );
    2930                wp_set_current_user( $user_id );
    … …  
    8485                do_action( 'wp_loaded' );
    8586                do_action( 'wp', $GLOBALS['wp'] );
     87        }
     88
     89        function remove_widgets_block_editor() {
     90                remove_theme_support( 'widgets-block-editor' );
    8691        }
    8792
    … …  
    259264
    260265                $default_args = array(
    261                         'type'                 => 'option',
    262                         'capability'           => 'edit_theme_options',
    263                         'transport'            => 'refresh',
    264                         'default'              => array(),
    265                         'sanitize_callback'    => array( $this->manager->widgets, 'sanitize_widget_instance' ),
    266                         'sanitize_js_callback' => array( $this->manager->widgets, 'sanitize_widget_js_instance' ),
     266                        'type'       => 'option',
     267                        'capability' => 'edit_theme_options',
     268                        'transport'  => 'refresh',
     269                        'default'    => array(),
    267270                );
    268271                $args         = $this->manager->widgets->get_setting_args( 'widget_foo[2]' );
    … …  
    270273                        $this->assertSame( $default_value, $args[ $key ] );
    271274                }
     275                $this->assertTrue( is_callable( $args['sanitize_callback'] ), 'sanitize_callback is callable' );
     276                $this->asserttrue( is_callable( $args['sanitize_js_callback'] ), 'sanitize_js_callback is callable' );
    272277                $this->assertSame( 'WIDGET_FOO[2]', $args['uppercase_id_set_by_filter'] );
    273278
    274279                $default_args = array(
    275                         'type'                 => 'option',
    276                         'capability'           => 'edit_theme_options',
    277                         'transport'            => 'postMessage',
    278                         'default'              => array(),
    279                         'sanitize_callback'    => array( $this->manager->widgets, 'sanitize_widget_instance' ),
    280                         'sanitize_js_callback' => array( $this->manager->widgets, 'sanitize_widget_js_instance' ),
     280                        'type'       => 'option',
     281                        'capability' => 'edit_theme_options',
     282                        'transport'  => 'postMessage',
     283                        'default'    => array(),
    281284                );
    282285                $args         = $this->manager->widgets->get_setting_args( 'widget_search[2]' );
    … …  
    284287                        $this->assertSame( $default_value, $args[ $key ] );
    285288                }
     289                $this->assertTrue( is_callable( $args['sanitize_callback'] ), 'sanitize_callback is callable' );
     290                $this->asserttrue( is_callable( $args['sanitize_js_callback'] ), 'sanitize_js_callback is callable' );
    286291
    287292                remove_theme_support( 'customize-selective-refresh-widgets' );
    … …  
    305310
    306311                $default_args = array(
    307                         'type'                 => 'option',
    308                         'capability'           => 'edit_theme_options',
    309                         'transport'            => 'postMessage',
    310                         'default'              => array(),
    311                         'sanitize_callback'    => array( $this->manager->widgets, 'sanitize_sidebar_widgets' ),
    312                         'sanitize_js_callback' => array( $this->manager->widgets, 'sanitize_sidebar_widgets_js_instance' ),
     312                        'type'       => 'option',
     313                        'capability' => 'edit_theme_options',
     314                        'transport'  => 'postMessage',
     315                        'default'    => array(),
    313316                );
    314317                $args         = $this->manager->widgets->get_setting_args( 'sidebars_widgets[sidebar-1]' );
    … …  
    316319                        $this->assertSame( $default_value, $args[ $key ] );
    317320                }
     321                $this->assertTrue( is_callable( $args['sanitize_callback'] ), 'sanitize_callback is callable' );
     322                $this->asserttrue( is_callable( $args['sanitize_js_callback'] ), 'sanitize_js_callback is callable' );
    318323                $this->assertSame( 'SIDEBARS_WIDGETS[SIDEBAR-1]', $args['uppercase_id_set_by_filter'] );
    319324
  • trunk/tools/webpack/packages.js

    r50945 r50996  
    113113                'latest-comments',
    114114                'latest-posts',
     115                'legacy-widget',
    115116                'loginout',
    116117                'post-content',
Note: See TracChangeset for help on using the changeset viewer.