From a8abe1b198fc64bf0100c24b7fc5db7a01a46de6 Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Tue, 10 Oct 2023 19:17:47 +0100 Subject: [PATCH 01/27] Fixed settings page not loading --- package.json | 14 +- .../models/class-construct-wp-settings.php | 2 + yarn.lock | 1100 +++++++++-------- 3 files changed, 563 insertions(+), 553 deletions(-) diff --git a/package.json b/package.json index 0d824e1..d325467 100644 --- a/package.json +++ b/package.json @@ -33,12 +33,14 @@ }, "dependencies": { "@popperjs/core": "^2.11.8", - "@wordpress/components": "^25.7.0", - "@wordpress/edit-post": "^7.18.0", - "@wordpress/element": "^5.18.0", - "@wordpress/hooks": "^3.41.0", - "@wordpress/i18n": "^4.41.0", - "@wordpress/plugins": "^6.9.0", + "@wordpress/components": "^25.9.0", + "@wordpress/data": "^9.13.0", + "@wordpress/edit-post": "^7.20.0", + "@wordpress/element": "^5.20.0", + "@wordpress/hooks": "^3.43.0", + "@wordpress/i18n": "^4.43.0", + "@wordpress/notices": "^4.11.0", + "@wordpress/plugins": "^6.11.0", "bootstrap": "^5.3.2", "react": "^18.2.0", "react-dom": "^18.2.0" diff --git a/plugins/construct-wp/models/class-construct-wp-settings.php b/plugins/construct-wp/models/class-construct-wp-settings.php index e7fc5f3..e3a79ee 100644 --- a/plugins/construct-wp/models/class-construct-wp-settings.php +++ b/plugins/construct-wp/models/class-construct-wp-settings.php @@ -181,9 +181,11 @@ public static function admin_enqueue( $hook_suffix ) { wp_enqueue_script( 'construct-wp-settings-script', CWP_PLUGIN_URL . 'assets/js/construct-wp-settings.js', array( 'wp-api', 'wp-components', + 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', + 'wp-notices', ) ); wp_localize_script( 'construct-wp-settings-script', 'cwpSettingsData', array( 'version' => CWP_VERSION, diff --git a/yarn.lock b/yarn.lock index 493717c..3dd6775 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,26 +15,26 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@ariakit/core@0.2.9": - version "0.2.9" - resolved "https://registry.yarnpkg.com/@ariakit/core/-/core-0.2.9.tgz#cb4af3f7d0e4a87613aa28f0e39f492b7e680166" - integrity sha512-BIEfY3AHImIc8R5j5DaBrEBKLlki5f0vqZbs56I0xQb12ssjn5VqpLr8Jl4v7DBm5S4ktTgeHjLloTppKFdABg== +"@ariakit/core@0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@ariakit/core/-/core-0.3.3.tgz#96f4cf4ecf1f42b514f386214a1a918bb837c7d3" + integrity sha512-8x77R0aE9O9pheygg+h/z0oU9Wx/Xdlr7nfkl4klGnkJma8/nAhJ2RrchCTQCUef4WMsRnq/doCz8m/sslP6CA== -"@ariakit/react-core@0.2.17": - version "0.2.17" - resolved "https://registry.yarnpkg.com/@ariakit/react-core/-/react-core-0.2.17.tgz#39960544c758d1dbe9481195f41387cf1a0d110f" - integrity sha512-y8pHUR2lMcYHUontd33lpnenOBIT8E72IhbMQq/aROQHAevNxLr0JtSkQ+G439N9DfCpKxDaErikss6zqCEGGQ== +"@ariakit/react-core@0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@ariakit/react-core/-/react-core-0.3.4.tgz#1e5ccd1cd4d34ed121aa090e5f6661fe46e081ef" + integrity sha512-kTRzbSZjRIUsLKQpjyAlzQGI+H01UBzHMKErk2Nag+Ure6m8aNHhD0TlOFyW4Bsf5NVsdHrXAVKNfCfJwk7eVg== dependencies: - "@ariakit/core" "0.2.9" + "@ariakit/core" "0.3.3" "@floating-ui/dom" "^1.0.0" use-sync-external-store "^1.2.0" -"@ariakit/react@^0.2.12": - version "0.2.17" - resolved "https://registry.yarnpkg.com/@ariakit/react/-/react-0.2.17.tgz#53d904105319a535d74b52118dd15788e91daa32" - integrity sha512-fJG0JBoACasyIVb+K9rW1Vyo7gI5Iseu1sP3WvIMnt5VdWjC/63NLpBHdnwQLhSx4z83pBPY6zKfPmEJa9fYug== +"@ariakit/react@^0.3.3": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@ariakit/react/-/react-0.3.4.tgz#1e941d5126c4c90188664fbffe1b8e045fef4288" + integrity sha512-dgu98m9kfkcG9oqazPCsIu29Na2WaQVeq3i8iW1JUQ4PMGsIu2EerDGjhKVrvFb5URd+pipy9XHmg7AoqvMHjw== dependencies: - "@ariakit/react-core" "0.2.17" + "@ariakit/react-core" "0.3.4" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13": version "7.22.13" @@ -1916,6 +1916,16 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453" integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA== +"@types/gradient-parser@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@types/gradient-parser/-/gradient-parser-0.1.3.tgz#12cdcb8f9c2e855f2a13a5bdf1e8613cc1ca258c" + integrity sha512-XDbrTSBlQV9nxE1GiDL3FaOPy4G/KaJkhDutBX48Kg8CYZMBARyyDFGCWfWJn4pobmInmwud1xxH7VJMAr0CKQ== + +"@types/highlight-words-core@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/highlight-words-core/-/highlight-words-core-1.2.1.tgz#cda9ed2cd04ea93165d3d3b20686b545d285ff66" + integrity sha512-9VZUA5omXBfn+hDxFjUDu1FOJTBM3LmvqfDey+Z6Aa8B8/JmF5SMj6FBrjfgJ/Q3YXOZd3qyTDfJyMZSs/wCUA== + "@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.13" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" @@ -2120,77 +2130,76 @@ "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" -"@wordpress/a11y@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/a11y/-/a11y-3.42.0.tgz#9f2de0925f39e225b51ccef8bd0faa76312835b4" - integrity sha512-ZQPeEwBCsRD5VRkab42qgG2kC/ZaSAsvePxxLBvibGftQV+oi+V7PFgOTzsaPNgV1MmHWhSNp1pDvN9DsNAZwQ== +"@wordpress/a11y@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/a11y/-/a11y-3.43.0.tgz#6369edc3c7e52ce8b357ecdebcff7b0304cfacef" + integrity sha512-jtBGQnjabqRIPyXSSjP2YXXD5qCY3FW2742hQo2yBrKWCwGrP2t7sdR6P6nAlRDKPMMrecK+RsyW3KKTgNgFzQ== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/dom-ready" "^3.42.0" - "@wordpress/i18n" "^4.42.0" + "@wordpress/dom-ready" "^3.43.0" + "@wordpress/i18n" "^4.43.0" -"@wordpress/api-fetch@^6.39.0": - version "6.39.0" - resolved "https://registry.yarnpkg.com/@wordpress/api-fetch/-/api-fetch-6.39.0.tgz#3c20aefdfb2f67400acc9d1fc580821d23d75ef8" - integrity sha512-G1OeBoIvyTsGieK2CIpZOJGh0rm5mf4rkT/LDlq633iXT5Hy9eo/DrSiWVSK6eUOahwWzHNG3kijRi0dEAl9kA== +"@wordpress/api-fetch@^6.40.0": + version "6.40.0" + resolved "https://registry.yarnpkg.com/@wordpress/api-fetch/-/api-fetch-6.40.0.tgz#00db6a9eea32f59de6b4c9a2bdbe09d88c60ab9b" + integrity sha512-sNk6vZW02ldci1EpNIjmm61323x/0n2Ra/cDHuehZf8avOH/OV0zF0dXxttT8M9Fncz+XZDSIHopm76dU3Phug== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/url" "^3.43.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/url" "^3.44.0" -"@wordpress/autop@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/autop/-/autop-3.42.0.tgz#901ba15f1f25092c7681d006b7fde4ed2529d1ca" - integrity sha512-+Tv0FEHkia3GkrZvUVTAmzp4gq9gV1YiH8nauV5BQmJLgpdauLxAq85cwlNxTg+nIqv9OCrdBbIb1KrV1GD+rw== +"@wordpress/autop@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/autop/-/autop-3.43.0.tgz#c7a6877840558331f218425ac768ae3838c0fc64" + integrity sha512-JSMaiWfuRr7SzzGQTuZs6NXz1wNgA/Mj44ob73jIhus3yay2KPOKrXah3FFxwg8tidZVtQIU9zEkB7g5ZUhr7Q== dependencies: "@babel/runtime" "^7.16.0" -"@wordpress/blob@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/blob/-/blob-3.42.0.tgz#5a453b4a017d7c7080002231f04096378a065877" - integrity sha512-XIChuUNhxLniptFIvLjFhdB7gnQemONidbLKwi/u/9YCJiTFbphCwCwhj9iXG0kYU4RLgkhjwXKZW6vT38iLxg== +"@wordpress/blob@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/blob/-/blob-3.43.0.tgz#3a75ed7d34f9970e97a0877fab5768984494e5cb" + integrity sha512-F5msCSoo2gN0IEFeixhnyN17hsHXQ9g+rWP+1SL5qIEjiCsDO3aCp8m1h1XDlFqdJY5iYDoFX6ydbtfHo7/sjA== dependencies: "@babel/runtime" "^7.16.0" -"@wordpress/block-editor@^12.10.0": - version "12.10.0" - resolved "https://registry.yarnpkg.com/@wordpress/block-editor/-/block-editor-12.10.0.tgz#cda84c1f98fff64efc782c3556c882adbc659046" - integrity sha512-DTgvNPjbeWpFUP9gYmm97Xn5LL7ayQGJD7qR4dmjQohqRYJIzIfUEtOg+0N3BusxjZYzbQTetKUdpQqEyx/MuA== +"@wordpress/block-editor@^12.11.0": + version "12.11.0" + resolved "https://registry.yarnpkg.com/@wordpress/block-editor/-/block-editor-12.11.0.tgz#2534683466bd401b534da52b16c3d3b556dc6173" + integrity sha512-dnQwrZrBjSQpFaD3Uhxo6Gg76A+envI6FjTWY4Qsz916kc2vcLLkLiAKeiMb6XQui7T6VhoZM3HUOIXSLKl9BQ== dependencies: "@babel/runtime" "^7.16.0" "@emotion/react" "^11.7.1" "@emotion/styled" "^11.6.0" "@react-spring/web" "^9.4.5" - "@wordpress/a11y" "^3.42.0" - "@wordpress/api-fetch" "^6.39.0" - "@wordpress/blob" "^3.42.0" - "@wordpress/blocks" "^12.19.0" - "@wordpress/commands" "^0.13.0" - "@wordpress/components" "^25.8.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/date" "^4.42.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/dom" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/escape-html" "^2.42.0" - "@wordpress/hooks" "^3.42.0" - "@wordpress/html-entities" "^3.42.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/is-shallow-equal" "^4.42.0" - "@wordpress/keyboard-shortcuts" "^4.19.0" - "@wordpress/keycodes" "^3.42.0" - "@wordpress/notices" "^4.10.0" - "@wordpress/preferences" "^3.19.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/rich-text" "^6.19.0" - "@wordpress/shortcode" "^3.42.0" - "@wordpress/style-engine" "^1.25.0" - "@wordpress/token-list" "^2.42.0" - "@wordpress/url" "^3.43.0" - "@wordpress/warning" "^2.42.0" - "@wordpress/wordcount" "^3.42.0" + "@wordpress/a11y" "^3.43.0" + "@wordpress/api-fetch" "^6.40.0" + "@wordpress/blob" "^3.43.0" + "@wordpress/blocks" "^12.20.0" + "@wordpress/commands" "^0.14.0" + "@wordpress/components" "^25.9.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/date" "^4.43.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/dom" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/escape-html" "^2.43.0" + "@wordpress/hooks" "^3.43.0" + "@wordpress/html-entities" "^3.43.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/is-shallow-equal" "^4.43.0" + "@wordpress/keyboard-shortcuts" "^4.20.0" + "@wordpress/keycodes" "^3.43.0" + "@wordpress/notices" "^4.11.0" + "@wordpress/preferences" "^3.20.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/rich-text" "^6.20.0" + "@wordpress/style-engine" "^1.26.0" + "@wordpress/token-list" "^2.43.0" + "@wordpress/url" "^3.44.0" + "@wordpress/warning" "^2.43.0" + "@wordpress/wordcount" "^3.43.0" change-case "^4.1.2" classnames "^2.3.1" colord "^2.7.0" @@ -2205,42 +2214,42 @@ remove-accents "^0.5.0" traverse "^0.6.6" -"@wordpress/block-library@^8.19.0": - version "8.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/block-library/-/block-library-8.19.0.tgz#48934b5277ecf888995ed59c4b956dba4a74202e" - integrity sha512-V8ZZjVi9ieLyILUtHsnPCYAjl9VQvof2NqG2iXH3B73BQA1QUUM0+glFtYTLgpzJcbPUJi48hUeCZRHd1p83kQ== +"@wordpress/block-library@^8.20.0": + version "8.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/block-library/-/block-library-8.20.0.tgz#a8ff120ec4818724e957088468ebddabdd4d9f6a" + integrity sha512-QLupdF6THTtBaaOc4QPXLCTj4mSIAeyOfpblUaEbZMT1vV7Lj0OTwN4CMQSmnTSyC0qQT3zcRNh4vfo3FTV24A== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/a11y" "^3.42.0" - "@wordpress/api-fetch" "^6.39.0" - "@wordpress/autop" "^3.42.0" - "@wordpress/blob" "^3.42.0" - "@wordpress/block-editor" "^12.10.0" - "@wordpress/blocks" "^12.19.0" - "@wordpress/components" "^25.8.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/core-data" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/date" "^4.42.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/dom" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/escape-html" "^2.42.0" - "@wordpress/hooks" "^3.42.0" - "@wordpress/html-entities" "^3.42.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/interactivity" "^2.3.0" - "@wordpress/keycodes" "^3.42.0" - "@wordpress/notices" "^4.10.0" - "@wordpress/primitives" "^3.40.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/reusable-blocks" "^4.19.0" - "@wordpress/rich-text" "^6.19.0" - "@wordpress/server-side-render" "^4.19.0" - "@wordpress/url" "^3.43.0" - "@wordpress/viewport" "^5.19.0" - "@wordpress/wordcount" "^3.42.0" + "@wordpress/a11y" "^3.43.0" + "@wordpress/api-fetch" "^6.40.0" + "@wordpress/autop" "^3.43.0" + "@wordpress/blob" "^3.43.0" + "@wordpress/block-editor" "^12.11.0" + "@wordpress/blocks" "^12.20.0" + "@wordpress/components" "^25.9.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/core-data" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/date" "^4.43.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/dom" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/escape-html" "^2.43.0" + "@wordpress/hooks" "^3.43.0" + "@wordpress/html-entities" "^3.43.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/interactivity" "^2.4.0" + "@wordpress/keycodes" "^3.43.0" + "@wordpress/notices" "^4.11.0" + "@wordpress/primitives" "^3.41.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/reusable-blocks" "^4.20.0" + "@wordpress/rich-text" "^6.20.0" + "@wordpress/server-side-render" "^4.20.0" + "@wordpress/url" "^3.44.0" + "@wordpress/viewport" "^5.20.0" + "@wordpress/wordcount" "^3.43.0" change-case "^4.1.2" classnames "^2.3.1" colord "^2.7.0" @@ -2249,35 +2258,35 @@ fast-deep-equal "^3.1.3" memize "^2.1.0" remove-accents "^0.5.0" - uuid "^8.3.0" + uuid "^9.0.1" -"@wordpress/block-serialization-default-parser@^4.42.0": - version "4.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.42.0.tgz#4ff07b2fa7b84630890f8dedf6462507934a2537" - integrity sha512-O6Ewh65qrZlSm1uUPS5vht2QxB0e9Zid+wqFqqIT08yl6iFnX1SNPpIa6KX9JDLEiFNi4LPfK0B0gQYG6+DtBw== +"@wordpress/block-serialization-default-parser@^4.43.0": + version "4.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.43.0.tgz#ad2b6edf8b40b176f5aa02359f95a1fbffdd9476" + integrity sha512-qEglmTHnRrrjG+t/NpjWo/xkeJboHldgrdakHl17Hzk/Mw2SfK3mf2781oosttIV4yCShdeyvdt1aJMf5AQT4A== dependencies: "@babel/runtime" "^7.16.0" -"@wordpress/blocks@^12.19.0": - version "12.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/blocks/-/blocks-12.19.0.tgz#f75d11970abb5eb78acbbcff47b1c7af6a7d7d1d" - integrity sha512-3Zj3dkpldl8/V4WmV1n6EAJeky/jRjwHiAPm/WY4x4jXBK/5zrZsaBEhENiz7J54ytM4QdsB0AxEkVHLyPML8w== +"@wordpress/blocks@^12.20.0": + version "12.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/blocks/-/blocks-12.20.0.tgz#39feb21cea45ea5ab1a36b6482d1a772bc60ed2b" + integrity sha512-hCD+hnnPRevkaI6xtlmw/bvJ4Eqe4TY0weGtx0vRUMpQr2u6JoSEGGW0qKo8+Uku47wAR13hXzvyI/HiG9Vt7g== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/autop" "^3.42.0" - "@wordpress/blob" "^3.42.0" - "@wordpress/block-serialization-default-parser" "^4.42.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/dom" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/hooks" "^3.42.0" - "@wordpress/html-entities" "^3.42.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/is-shallow-equal" "^4.42.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/shortcode" "^3.42.0" + "@wordpress/autop" "^3.43.0" + "@wordpress/blob" "^3.43.0" + "@wordpress/block-serialization-default-parser" "^4.43.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/dom" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/hooks" "^3.43.0" + "@wordpress/html-entities" "^3.43.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/is-shallow-equal" "^4.43.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/shortcode" "^3.43.0" change-case "^4.1.2" colord "^2.7.0" deepmerge "^4.3.0" @@ -2289,31 +2298,31 @@ remove-accents "^0.5.0" showdown "^1.9.1" simple-html-tokenizer "^0.5.7" - uuid "^8.3.0" + uuid "^9.0.1" -"@wordpress/commands@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@wordpress/commands/-/commands-0.13.0.tgz#e4911cc3308d27295cd160db3eac96e30ba657c6" - integrity sha512-/0iDX5iuGqMdriJwOQWOpVDUXH2tfe/BmK9jFzDqWXrLXprY261sZziGPn+1iEABexvJIKuPrR95XPPoQDPegw== +"@wordpress/commands@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@wordpress/commands/-/commands-0.14.0.tgz#b6c0a8bba0436f8df44bdabb41ae51fe0f35bcaf" + integrity sha512-uqcd18tCqsYP6xZnF9K4PzpJSMrlFDyLB5tCO+oVMKXbmOcsXXI6uPPj/TUHthNo3svL735LXiawuMp3IkM1kQ== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/components" "^25.8.0" - "@wordpress/data" "^9.12.0" - "@wordpress/element" "^5.19.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/keyboard-shortcuts" "^4.19.0" - "@wordpress/private-apis" "^0.24.0" + "@wordpress/components" "^25.9.0" + "@wordpress/data" "^9.13.0" + "@wordpress/element" "^5.20.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/keyboard-shortcuts" "^4.20.0" + "@wordpress/private-apis" "^0.25.0" classnames "^2.3.1" cmdk "^0.2.0" rememo "^4.0.2" -"@wordpress/components@^25.7.0", "@wordpress/components@^25.8.0": - version "25.8.0" - resolved "https://registry.yarnpkg.com/@wordpress/components/-/components-25.8.0.tgz#c8368a25a003661e1044759812bf140265ff60dd" - integrity sha512-4pAb/YUXwggbccbL6NTcMTA5caz+KlKRDeOb0hQ5MrBmPkZtc7uXlfqDR69NXIF6dHDUGtXuj5B5+62w7fb1Og== +"@wordpress/components@^25.9.0": + version "25.9.0" + resolved "https://registry.yarnpkg.com/@wordpress/components/-/components-25.9.0.tgz#8ee2f87fbcc3336e564c581df17f93ca0a2dcd70" + integrity sha512-UA7oxtxoM0POdHwFbtlwotABGXeXB8Xy/5cAElga+MjVGRNGL6nrpkQgBUwXALvR39she25t1TJKM+OwxQ5ogg== dependencies: - "@ariakit/react" "^0.2.12" + "@ariakit/react" "^0.3.3" "@babel/runtime" "^7.16.0" "@emotion/cache" "^11.7.1" "@emotion/css" "^11.7.1" @@ -2323,24 +2332,26 @@ "@emotion/utils" "^1.0.0" "@floating-ui/react-dom" "^2.0.1" "@radix-ui/react-dropdown-menu" "2.0.4" + "@types/gradient-parser" "0.1.3" + "@types/highlight-words-core" "1.2.1" "@use-gesture/react" "^10.2.24" - "@wordpress/a11y" "^3.42.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/date" "^4.42.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/dom" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/escape-html" "^2.42.0" - "@wordpress/hooks" "^3.42.0" - "@wordpress/html-entities" "^3.42.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/is-shallow-equal" "^4.42.0" - "@wordpress/keycodes" "^3.42.0" - "@wordpress/primitives" "^3.40.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/rich-text" "^6.19.0" - "@wordpress/warning" "^2.42.0" + "@wordpress/a11y" "^3.43.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/date" "^4.43.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/dom" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/escape-html" "^2.43.0" + "@wordpress/hooks" "^3.43.0" + "@wordpress/html-entities" "^3.43.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/is-shallow-equal" "^4.43.0" + "@wordpress/keycodes" "^3.43.0" + "@wordpress/primitives" "^3.41.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/rich-text" "^6.20.0" + "@wordpress/warning" "^2.43.0" change-case "^4.1.2" classnames "^2.3.1" colord "^2.7.0" @@ -2360,202 +2371,202 @@ reakit "^1.3.11" remove-accents "^0.5.0" use-lilius "^2.0.1" - uuid "^8.3.0" + uuid "^9.0.1" valtio "1.7.0" -"@wordpress/compose@^6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/compose/-/compose-6.19.0.tgz#5235e8cb45752f24c6ce2989fb6958a2fa3432cd" - integrity sha512-BD/0n8ifluyrYAYi0wpVccKOQyctA21Y9TOErtwprY8MxQGcf8LcbAgYL9fmdjIoGOsUduZ+U/SrErJfBR4JLw== +"@wordpress/compose@^6.20.0": + version "6.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/compose/-/compose-6.20.0.tgz#b14af359c062f3ce0cc2df40ca56f128e93c3558" + integrity sha512-9BOECyaz9HN7v98Lz6sAJxemcR6rnUZS2DAoGVJHxUPqYiyIRIMEax5SR6MVI/Qr1n7rFouK/0lUP7ZGRzQauA== dependencies: "@babel/runtime" "^7.16.0" "@types/mousetrap" "^1.6.8" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/dom" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/is-shallow-equal" "^4.42.0" - "@wordpress/keycodes" "^3.42.0" - "@wordpress/priority-queue" "^2.42.0" - "@wordpress/undo-manager" "^0.2.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/dom" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/is-shallow-equal" "^4.43.0" + "@wordpress/keycodes" "^3.43.0" + "@wordpress/priority-queue" "^2.43.0" + "@wordpress/undo-manager" "^0.3.0" change-case "^4.1.2" clipboard "^2.0.8" mousetrap "^1.6.5" use-memo-one "^1.1.1" -"@wordpress/core-commands@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@wordpress/core-commands/-/core-commands-0.11.0.tgz#3888735db1c15df71f5b78214c9ab16255919e9a" - integrity sha512-nQAa3vByL0D7N3bzCs5hy914Bmd6N0DtQsW4mpoay3zUtRMWpuVwKIv+QFJhyBVNOx0buFF1F5qdqKnuJJfK7A== +"@wordpress/core-commands@^0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@wordpress/core-commands/-/core-commands-0.12.0.tgz#a2e9cd815c23ee139f799b263257b113accbb43c" + integrity sha512-PvvOpN5cDoVGmsfPw2KEKRc4dI8qmzwH5biiopCtWIEhT1HoJu0E4ei6TtBjz3yX46OoSf/JwugAMetzDw1K8Q== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/block-editor" "^12.10.0" - "@wordpress/commands" "^0.13.0" - "@wordpress/core-data" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/element" "^5.19.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/router" "^0.11.0" - "@wordpress/url" "^3.43.0" - -"@wordpress/core-data@^6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/core-data/-/core-data-6.19.0.tgz#439bec39d0c116c1f00aa16029d7f7312099cb90" - integrity sha512-pwi5N/OzfLLfsydqgAzaVDRXF5+Tcot/A6SsjXH35wvX3ZZ5fQyREMqoXxDTCxXRMOGk9oG4rVqfimmEWuGo6g== + "@wordpress/block-editor" "^12.11.0" + "@wordpress/commands" "^0.14.0" + "@wordpress/core-data" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/element" "^5.20.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/router" "^0.12.0" + "@wordpress/url" "^3.44.0" + +"@wordpress/core-data@^6.20.0": + version "6.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/core-data/-/core-data-6.20.0.tgz#50497b783edd3a4a35500008d8c4ea965dd438cb" + integrity sha512-R6OE9i9pAmOJKmzsYrKNyXBRn3MeLIuSk3ocTGvEvqLTdVkky5knlVPHC4j/z/NgvJrEEyA3RFAxkw8C999j3w== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/api-fetch" "^6.39.0" - "@wordpress/block-editor" "^12.10.0" - "@wordpress/blocks" "^12.19.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/html-entities" "^3.42.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/is-shallow-equal" "^4.42.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/sync" "^0.4.0" - "@wordpress/undo-manager" "^0.2.0" - "@wordpress/url" "^3.43.0" + "@wordpress/api-fetch" "^6.40.0" + "@wordpress/block-editor" "^12.11.0" + "@wordpress/blocks" "^12.20.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/html-entities" "^3.43.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/is-shallow-equal" "^4.43.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/rich-text" "^6.20.0" + "@wordpress/sync" "^0.5.0" + "@wordpress/undo-manager" "^0.3.0" + "@wordpress/url" "^3.44.0" change-case "^4.1.2" equivalent-key-map "^0.2.2" fast-deep-equal "^3.1.3" memize "^2.1.0" rememo "^4.0.2" - uuid "^8.3.0" + uuid "^9.0.1" -"@wordpress/data@^9.12.0": - version "9.12.0" - resolved "https://registry.yarnpkg.com/@wordpress/data/-/data-9.12.0.tgz#fa95b12c6e9c5145bafc82cc2e61eb37a3b22d0a" - integrity sha512-VfYykFKF1Lc4C2UHEzcT+5ADKWnTTPRmWPal4wuiKmSxAsgsIhNX12yknBhgzoMoF89i7Mlb1sUa/wHxA+sgYg== +"@wordpress/data@^9.13.0": + version "9.13.0" + resolved "https://registry.yarnpkg.com/@wordpress/data/-/data-9.13.0.tgz#62edce0a06082cb394a30b41bafcb8474c1ff98c" + integrity sha512-SayS6JsOFL2SBKIk4NFlmGLYvH7ocqOf6iuMq2aJ8E04VuExLEDqnDjxXkdOgLrrie6dOLG21EvNRk7Vc7QDOA== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/is-shallow-equal" "^4.42.0" - "@wordpress/priority-queue" "^2.42.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/redux-routine" "^4.42.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/is-shallow-equal" "^4.43.0" + "@wordpress/priority-queue" "^2.43.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/redux-routine" "^4.43.0" deepmerge "^4.3.0" equivalent-key-map "^0.2.2" is-plain-object "^5.0.0" is-promise "^4.0.0" redux "^4.1.2" rememo "^4.0.2" - turbo-combine-reducers "^1.0.2" use-memo-one "^1.1.1" -"@wordpress/date@^4.42.0": - version "4.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/date/-/date-4.42.0.tgz#3758370a5c5b180abb34994b838098357a6bbb77" - integrity sha512-N2KIRyvUaj1EQybwP0gFl/RHg0eC8a1TZO5PpVOYx+NP2o22UVwd0LKn74o1CfXEIVe/HcVsXZqbQmL+WCIGCQ== +"@wordpress/date@^4.43.0": + version "4.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/date/-/date-4.43.0.tgz#c07701299b0b77dcbfc996181d084f68403e511d" + integrity sha512-fXHXewPYogPGsQSzy1z9WIUluWof2vPkRc4KXE5vgmWaUbl5xvPEiRX4ZJcofYmKzk0ioDYrq56eDKvEgKoF+A== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/deprecated" "^3.42.0" + "@wordpress/deprecated" "^3.43.0" moment "^2.29.4" moment-timezone "^0.5.40" -"@wordpress/deprecated@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/deprecated/-/deprecated-3.42.0.tgz#a7d1adafd3d1fc1a50ac30ff88cbcc3eb839827d" - integrity sha512-yQzPUp4YpD3xzBDH0658Hxx5u68+1Zeysg6MT+jOoKfeqn1zm+i8BK1lEbN/0au0Ubsj/mTJe3gJb9ag9ZsZSw== +"@wordpress/deprecated@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/deprecated/-/deprecated-3.43.0.tgz#2607a69a30132d2b1e57a9a5733096e97a11904f" + integrity sha512-rmnehCKUEvZBH1VbQiK7YV9Yh5EQPcOO0kaf7UIGXUrH/pEpUn1PW+5Yox4ZyVNvqCQj2mbs6sqSNiIsjRWpAA== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/hooks" "^3.42.0" + "@wordpress/hooks" "^3.43.0" -"@wordpress/dom-ready@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/dom-ready/-/dom-ready-3.42.0.tgz#d8f3cf0d11773e449a4553d3f2f67c8103a95ba5" - integrity sha512-fc02M3k7cIerNHycv1zHboyGvtrtId+51xCfrCw3VchMAY2rX6ZOKgOqMhjhRNNVgfKupTACSeY4KHyHpqnq4g== +"@wordpress/dom-ready@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/dom-ready/-/dom-ready-3.43.0.tgz#6c86ffde064beb0cce1e73e16bd38a75365c7b66" + integrity sha512-XNlkKi9BwsvyUgTFWZbwywknagc26UmdeqaDHP1l+M3ztKw7V9FCZxyXgM9M+i0jNReREzK3EzjjG+nNzFb0+Q== dependencies: "@babel/runtime" "^7.16.0" -"@wordpress/dom@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/dom/-/dom-3.42.0.tgz#8a47caf6cffc3abd799a474058e7e6f1b34bccfd" - integrity sha512-C/7Sof0e1JkeuFS9Qwk/AOa/mbMbyjNh4a/7NG5XxevfXoF9w3JI8LbZdy428wSHB/K2Si8uvAJ1mCqqh/IcgQ== +"@wordpress/dom@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/dom/-/dom-3.43.0.tgz#17a2180310c6ae5aa42cece24a44a133b39d081f" + integrity sha512-fTaZvTG/0En5r+ArMOGiBUomhbpJJf2RYMMu2ok39E/alwIawZHz/qeL3706BlT4r2QPCfK/tUOHQSh13+3ocg== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/deprecated" "^3.42.0" + "@wordpress/deprecated" "^3.43.0" -"@wordpress/edit-post@^7.18.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/edit-post/-/edit-post-7.19.0.tgz#4ae15d6047131fa7c41c2f470f50d6348f27aff5" - integrity sha512-trkgBrW0YPuNKtysN+C8HpPgQKfNVZTPYBrjXK+1X4pgc9DvZps99DOQW47qi6Krk1jG3qymymD2CdggYF6VdA== +"@wordpress/edit-post@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/edit-post/-/edit-post-7.20.0.tgz#3ae20498805a5fc95ddc47a3f2187ad2f6a4b8c5" + integrity sha512-/QK6nV1OCnDYs4pYwNweF41QJlL+1o3oImIg88CS8GRRHnaya5AnpkQx0Ky4msqbufcTvMSWB2a1PfZQI4klXA== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/a11y" "^3.42.0" - "@wordpress/api-fetch" "^6.39.0" - "@wordpress/block-editor" "^12.10.0" - "@wordpress/block-library" "^8.19.0" - "@wordpress/blocks" "^12.19.0" - "@wordpress/commands" "^0.13.0" - "@wordpress/components" "^25.8.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/core-commands" "^0.11.0" - "@wordpress/core-data" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/dom" "^3.42.0" - "@wordpress/editor" "^13.19.0" - "@wordpress/element" "^5.19.0" - "@wordpress/hooks" "^3.42.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/interface" "^5.19.0" - "@wordpress/keyboard-shortcuts" "^4.19.0" - "@wordpress/keycodes" "^3.42.0" - "@wordpress/media-utils" "^4.33.0" - "@wordpress/notices" "^4.10.0" - "@wordpress/plugins" "^6.10.0" - "@wordpress/preferences" "^3.19.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/url" "^3.43.0" - "@wordpress/viewport" "^5.19.0" - "@wordpress/warning" "^2.42.0" - "@wordpress/widgets" "^3.19.0" + "@wordpress/a11y" "^3.43.0" + "@wordpress/api-fetch" "^6.40.0" + "@wordpress/block-editor" "^12.11.0" + "@wordpress/block-library" "^8.20.0" + "@wordpress/blocks" "^12.20.0" + "@wordpress/commands" "^0.14.0" + "@wordpress/components" "^25.9.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/core-commands" "^0.12.0" + "@wordpress/core-data" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/dom" "^3.43.0" + "@wordpress/editor" "^13.20.0" + "@wordpress/element" "^5.20.0" + "@wordpress/hooks" "^3.43.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/interface" "^5.20.0" + "@wordpress/keyboard-shortcuts" "^4.20.0" + "@wordpress/keycodes" "^3.43.0" + "@wordpress/media-utils" "^4.34.0" + "@wordpress/notices" "^4.11.0" + "@wordpress/plugins" "^6.11.0" + "@wordpress/preferences" "^3.20.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/url" "^3.44.0" + "@wordpress/viewport" "^5.20.0" + "@wordpress/warning" "^2.43.0" + "@wordpress/widgets" "^3.20.0" classnames "^2.3.1" memize "^2.1.0" rememo "^4.0.2" -"@wordpress/editor@^13.19.0": - version "13.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/editor/-/editor-13.19.0.tgz#bf0decc453cd043c8002e86b51e97d2c17730d34" - integrity sha512-XL/Y9mrtFIth6yaxpAGtY5JzshIgd0I56Ays4sF9X2naBxQOcnFCWMDchmUwE31vedRgpWfZOEz2OvNHJk2PKg== +"@wordpress/editor@^13.20.0": + version "13.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/editor/-/editor-13.20.0.tgz#23866c243bd01a7a7c83925d93e8a5aa0d56dc3a" + integrity sha512-3cylfS5UzzlAscmPdPFTYx8zPRWFyVy7Oa9RRP8yj++THKt6ExfpSywRPm5C2aviMx/8Ckpx8rkvWTSB7Sekjw== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/a11y" "^3.42.0" - "@wordpress/api-fetch" "^6.39.0" - "@wordpress/blob" "^3.42.0" - "@wordpress/block-editor" "^12.10.0" - "@wordpress/blocks" "^12.19.0" - "@wordpress/components" "^25.8.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/core-data" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/date" "^4.42.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/dom" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/hooks" "^3.42.0" - "@wordpress/html-entities" "^3.42.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/keyboard-shortcuts" "^4.19.0" - "@wordpress/keycodes" "^3.42.0" - "@wordpress/media-utils" "^4.33.0" - "@wordpress/notices" "^4.10.0" - "@wordpress/patterns" "^1.3.0" - "@wordpress/preferences" "^3.19.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/reusable-blocks" "^4.19.0" - "@wordpress/rich-text" "^6.19.0" - "@wordpress/server-side-render" "^4.19.0" - "@wordpress/url" "^3.43.0" - "@wordpress/wordcount" "^3.42.0" + "@wordpress/a11y" "^3.43.0" + "@wordpress/api-fetch" "^6.40.0" + "@wordpress/blob" "^3.43.0" + "@wordpress/block-editor" "^12.11.0" + "@wordpress/blocks" "^12.20.0" + "@wordpress/components" "^25.9.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/core-data" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/date" "^4.43.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/dom" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/hooks" "^3.43.0" + "@wordpress/html-entities" "^3.43.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/keyboard-shortcuts" "^4.20.0" + "@wordpress/keycodes" "^3.43.0" + "@wordpress/media-utils" "^4.34.0" + "@wordpress/notices" "^4.11.0" + "@wordpress/patterns" "^1.4.0" + "@wordpress/preferences" "^3.20.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/reusable-blocks" "^4.20.0" + "@wordpress/rich-text" "^6.20.0" + "@wordpress/server-side-render" "^4.20.0" + "@wordpress/url" "^3.44.0" + "@wordpress/wordcount" "^3.43.0" classnames "^2.3.1" date-fns "^2.28.0" memize "^2.1.0" @@ -2563,369 +2574,369 @@ rememo "^4.0.2" remove-accents "^0.5.0" -"@wordpress/element@^5.18.0", "@wordpress/element@^5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-5.19.0.tgz#9bf65f630289dec7a8dbb436d54e721b699c9d0f" - integrity sha512-uTRrt6zrtdXT5DkffvKSLoCw0aLOHHbV4dDnh6NNR4n2roxhPK7MQRUpybVfuzyvCTIzKPI/0E3q87AWshePNg== +"@wordpress/element@^5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/element/-/element-5.20.0.tgz#424d62d6ffc7f879fb4bfd35bcb6572f9916cebf" + integrity sha512-EO2cXUTrACQJ0JG+nuQnnaKu/qJbnBPmTgy6HCfU90um1G3kdG/iHh+T1YCi/WqxW+6UrL7I8FbxPfcEJvvONA== dependencies: "@babel/runtime" "^7.16.0" "@types/react" "^18.0.21" "@types/react-dom" "^18.0.6" - "@wordpress/escape-html" "^2.42.0" + "@wordpress/escape-html" "^2.43.0" change-case "^4.1.2" is-plain-object "^5.0.0" react "^18.2.0" react-dom "^18.2.0" -"@wordpress/escape-html@^2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/escape-html/-/escape-html-2.42.0.tgz#619a98e335f938ffcd3aaaf856ac9ef34d59e718" - integrity sha512-hC/SfA3mrLEL1QiXEp+yEb7BhgqUkmYnXnuuuGD/xxazPVdMoW80gNxeFYnVQrNnc48EC7JbWGlTuB93D2EeMw== +"@wordpress/escape-html@^2.43.0": + version "2.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/escape-html/-/escape-html-2.43.0.tgz#d6343766f10c22e425f6265111ee9b9b6fb8c716" + integrity sha512-+hLbsx4PXGnziUSS/7W9B47xgh2VUg11rSbe3Q3bTMCFWaYqk0cvAk5C74Re99Hiekct99HmpnmyVq+we8bkUQ== dependencies: "@babel/runtime" "^7.16.0" -"@wordpress/hooks@^3.41.0", "@wordpress/hooks@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/hooks/-/hooks-3.42.0.tgz#705521cc8d4e56f9a7e54f1c72cf49194d014135" - integrity sha512-GUePaweJgINbOyeWDG1p0ffxKZXZIOJdkdSCG8oWoAohJPOYe8WeYl/nAsECiUjbIuVletQe1RoTGrNdNkFTdg== +"@wordpress/hooks@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/hooks/-/hooks-3.43.0.tgz#78dd7d0f8b379fe7e8374916c3330d7abaa271cc" + integrity sha512-SHSiyFUEsggihl0pDvY1l72q+fHMDyFHtIR3GCt0uV2ifctvoa/PIYdVwrxpGQaGdNEV25XCZ4kNldqJmfTddw== dependencies: "@babel/runtime" "^7.16.0" -"@wordpress/html-entities@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/html-entities/-/html-entities-3.42.0.tgz#15c67df09c48517c537c5918c0b08368dd1e62ef" - integrity sha512-PM2HXsCHZPMblpNFIwcJQO7an1WZyaAmmw8EbfSOb+NtE4dxj8mmvpzNfUKBtVWH5DxUk2WGslTMtjjOJPzfSg== +"@wordpress/html-entities@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/html-entities/-/html-entities-3.43.0.tgz#c83f282aaee7c77fc1223d5a14af0a0a7202d329" + integrity sha512-e7OJU2DRa2Z6TxLq5y2/jKVjlqdVJDwwR0yNp4ajyrtGIMNJw+7PXvdgSoroD5M6UjWRuLT57crcgVT4M53nRA== dependencies: "@babel/runtime" "^7.16.0" -"@wordpress/i18n@^4.41.0", "@wordpress/i18n@^4.42.0": - version "4.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/i18n/-/i18n-4.42.0.tgz#768f5fe56d072001901d8ef738aec5986a23308d" - integrity sha512-6cEcsVk9EX0c2azz0h1aAZqGjts+VrGMHzMB22GBIhsiz/TWAqkMapt1QF1YbsJ4/VR2CHnKlONjhHNtsHn8Ew== +"@wordpress/i18n@^4.43.0": + version "4.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/i18n/-/i18n-4.43.0.tgz#cd360ea7ab57717a1aad6312dab8512355a58c54" + integrity sha512-XHU/vGgI+pgjJU9WzWDHke1u948z8i3OPpKUNdxc/gMcTkKaKM4D8DW1+VMSQHyU6pneP8+ph7EF+1RIehP3lQ== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/hooks" "^3.42.0" + "@wordpress/hooks" "^3.43.0" gettext-parser "^1.3.1" memize "^2.1.0" sprintf-js "^1.1.1" tannin "^1.2.0" -"@wordpress/icons@^9.33.0": - version "9.33.0" - resolved "https://registry.yarnpkg.com/@wordpress/icons/-/icons-9.33.0.tgz#32ed6749fc9cbecf71f8737d085a128b680bad20" - integrity sha512-yD8b2Q21/X1riFIUBbgVh6sVhrnOYpstV9hxa4/MKesWYkyDN75KM6uaor1/tn5wyq40Shnpwxvc9kPUGI4Kgw== +"@wordpress/icons@^9.34.0": + version "9.34.0" + resolved "https://registry.yarnpkg.com/@wordpress/icons/-/icons-9.34.0.tgz#4330e654e7a9582346852977eea24a13cdd766ae" + integrity sha512-yJWfvgnWnPBd/Co7VjdbCj3o2HJdP4npblJCj7LR+KcnCTPYZWMc4GU3OuzmxMByALuAndfIxgm1YDSHt/F4Wg== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/element" "^5.19.0" - "@wordpress/primitives" "^3.40.0" + "@wordpress/element" "^5.20.0" + "@wordpress/primitives" "^3.41.0" -"@wordpress/interactivity@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@wordpress/interactivity/-/interactivity-2.3.0.tgz#ac2475463d912192c4cbcee7c284e5edd4e6ede9" - integrity sha512-lw6cGhGj2Zyn4RGiafQMzZxLR8vSnJ1p7FGMn5UzQCEpVH/iZ3cFYBtcNiHQU8wjsfsWPZqgvbLmh7ayPZohgA== +"@wordpress/interactivity@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@wordpress/interactivity/-/interactivity-2.4.0.tgz#610a40182f2c0ee89b067b4856a832c1bb8c467d" + integrity sha512-J329+xKoAnT7/J5Ad6Lhu8XrUXfmLu2H7ZvQULKGwDWZ/WAKP1AVYY+rWvrhbthqV//lLKqQuluSaKt5tM0xsA== dependencies: "@preact/signals" "^1.1.3" deepsignal "^1.3.6" preact "^10.13.2" -"@wordpress/interface@^5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/interface/-/interface-5.19.0.tgz#ee1fc81ed534c1871bd095b6910919487c9a8d0a" - integrity sha512-/+3c9RcHKrcHMm8bZsUciNnq59UvPzVf+CvEImVz9XReSfqa6puRAs2LWY/d/L1vebruVmbEmZ/lcYrXFG6cgA== +"@wordpress/interface@^5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/interface/-/interface-5.20.0.tgz#54ea88e421ac13dfe3f8fdc0ed68d6db6e4da892" + integrity sha512-tWZgV1o+/oTu3ZxemJ7DBhdBz61foFCrObFuPY1vvwGDSENGqmrAErsTADWldfEjZEsOJVcc9W8BBwMPx6fK5A== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/a11y" "^3.42.0" - "@wordpress/components" "^25.8.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/plugins" "^6.10.0" - "@wordpress/preferences" "^3.19.0" - "@wordpress/viewport" "^5.19.0" + "@wordpress/a11y" "^3.43.0" + "@wordpress/components" "^25.9.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/plugins" "^6.11.0" + "@wordpress/preferences" "^3.20.0" + "@wordpress/viewport" "^5.20.0" classnames "^2.3.1" -"@wordpress/is-shallow-equal@^4.42.0": - version "4.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/is-shallow-equal/-/is-shallow-equal-4.42.0.tgz#cc60299727fd6c9c47ab00754bac84bfcf8f1a3b" - integrity sha512-7GwmKIfcY+gxeQZX1hFZSnzEl6I6A1mpsafVxVLZfzqMqCnViFGZFHlirpckafG7CVTddGQsr/shbX6rAG3pmw== +"@wordpress/is-shallow-equal@^4.43.0": + version "4.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/is-shallow-equal/-/is-shallow-equal-4.43.0.tgz#c5e9fb72d1f9a458770f4312a13794b2fafd0ba8" + integrity sha512-KhEvz2V9gjq+C8v/YEYMRetOg2YI/Ik8cc8dWlOMHp7GbZAPHACplR4ZeEF8Ef2LZ8JnNL6IqW8zZzUhSOxlqg== dependencies: "@babel/runtime" "^7.16.0" -"@wordpress/keyboard-shortcuts@^4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-4.19.0.tgz#c7f12a8b554c1e94c348b21767de480ede845529" - integrity sha512-LzKNZxWHXYkCzhlNQGU85fdz20yzBJEK/9MBJhxBQV0lw2T1NE+JtFz5yuy+pjIuzqQWNR9oP3BoAj2wQImdnw== +"@wordpress/keyboard-shortcuts@^4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-4.20.0.tgz#ce8a72932bdcd47af5897110c565262918e92776" + integrity sha512-uM6Do4/h+Qdtn29BsURwl7PFh1CZA+6nsY8LOBBoxn9Pl00FUo6B1lbb7ok7bcW3O/gDdqtmw096fqvlayibtA== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/data" "^9.12.0" - "@wordpress/element" "^5.19.0" - "@wordpress/keycodes" "^3.42.0" + "@wordpress/data" "^9.13.0" + "@wordpress/element" "^5.20.0" + "@wordpress/keycodes" "^3.43.0" rememo "^4.0.2" -"@wordpress/keycodes@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/keycodes/-/keycodes-3.42.0.tgz#ed4fde4b7a457f04694de8625f48a863ce9f68aa" - integrity sha512-T1iuUUwV0Hb1VE+8wb6KgMJOWIGMF4uJdKBuTJnPaHoGK4b7PNnmh0nUkGv9e03wJhtWAWqjdiablUxB2BYe/Q== +"@wordpress/keycodes@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/keycodes/-/keycodes-3.43.0.tgz#36c94065bffe72e95503c6e226d725ee4cb3c5dd" + integrity sha512-B6rYPiKFdQTlnJfm93R+usQnjEODUX/K4+hMvY5ZZOinvxe7KyU/xyFGz7gRrS8WmIEYcJowqSmAlGgVs4XwKQ== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/i18n" "^4.42.0" + "@wordpress/i18n" "^4.43.0" change-case "^4.1.2" -"@wordpress/media-utils@^4.33.0": - version "4.33.0" - resolved "https://registry.yarnpkg.com/@wordpress/media-utils/-/media-utils-4.33.0.tgz#ae26de04b430c332998dae611ce17afdf747e6dd" - integrity sha512-BxT8AgHlkQKYZVSw9853/mIMeo4kwsfylIyvK2txXl1RX0KGqbArLSPEdsHD3jfNzidgTF8mAPbribVr5RWdWw== +"@wordpress/media-utils@^4.34.0": + version "4.34.0" + resolved "https://registry.yarnpkg.com/@wordpress/media-utils/-/media-utils-4.34.0.tgz#d3c6c87bbb3d3518a9943386659d203b0810e11d" + integrity sha512-mk7/SwAAJhKAAbIAMJorqeEbTPItEX+FEQW/H3NIgVfD0nFMDchw7iCw6HEKqjlfZ/nejnCCoSJQnn/e5ydIJQ== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/api-fetch" "^6.39.0" - "@wordpress/blob" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/i18n" "^4.42.0" + "@wordpress/api-fetch" "^6.40.0" + "@wordpress/blob" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/i18n" "^4.43.0" -"@wordpress/notices@^4.10.0": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@wordpress/notices/-/notices-4.10.0.tgz#5413ef89938cf350b946d19b845b3fe0ce42f34f" - integrity sha512-k7XLFH5uz9FPgZH9evu2bz/ehSfWmUiheUDxq/J/Tqyj1fE33RiqXprxrCYTw2ljx82XAHzcYrGJggsJpN3zog== +"@wordpress/notices@^4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@wordpress/notices/-/notices-4.11.0.tgz#c69d5d9a9ef6f24396c5b8f8d2c0d61411ed741d" + integrity sha512-D9DeVjbfIjAmF9NgJ7ZKwAXFSCgWz2fwFh95pK10V3C4GdaXwzLr4Ig3RvnK9a5Hx5vT5dzGrOSbkz9nnggLLQ== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/a11y" "^3.42.0" - "@wordpress/data" "^9.12.0" + "@wordpress/a11y" "^3.43.0" + "@wordpress/data" "^9.13.0" -"@wordpress/patterns@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@wordpress/patterns/-/patterns-1.3.0.tgz#aab708692c393c6b1d4a2c608d9bef16b9beb8de" - integrity sha512-4f0q1Cpjcl5v6Cy6UPlNCQdzsXSDNQbFc4adnGqo0eyqNSy9kJbG2e81wPtaLb++UI4+/TUysoPqkPN8P2Tnyw== +"@wordpress/patterns@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@wordpress/patterns/-/patterns-1.4.0.tgz#1c6da693fb6735a8547c695b997bbb6240790d93" + integrity sha512-dbLrOBGV5d4xA4up6OeoRH7yz19XORk3V7AFMd1BiZK/KiBou9OYbCUPIh0qMbnS+Y+TOolvzQUhg97qY6B2Yw== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/block-editor" "^12.10.0" - "@wordpress/blocks" "^12.19.0" - "@wordpress/components" "^25.8.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/core-data" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/element" "^5.19.0" - "@wordpress/html-entities" "^3.42.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/notices" "^4.10.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/url" "^3.43.0" - -"@wordpress/plugins@^6.10.0", "@wordpress/plugins@^6.9.0": - version "6.10.0" - resolved "https://registry.yarnpkg.com/@wordpress/plugins/-/plugins-6.10.0.tgz#89c89325e85cdb9af1294797d9756f5bedc55038" - integrity sha512-SpZadp+tQ7uAPCpirrW4yb6VwMtFGl97z2GwVsZThMh+i/+K7cl//4e2dP7eKSOSsdiffG4xovciKpsHHmG9bg== + "@wordpress/block-editor" "^12.11.0" + "@wordpress/blocks" "^12.20.0" + "@wordpress/components" "^25.9.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/core-data" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/element" "^5.20.0" + "@wordpress/html-entities" "^3.43.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/notices" "^4.11.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/url" "^3.44.0" + +"@wordpress/plugins@^6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@wordpress/plugins/-/plugins-6.11.0.tgz#7cec3be7292a7c52866486ae02e6d526ec4e9d10" + integrity sha512-JvRET7+p67+pz/qSuh3ciS9vILtpu6Zh7m3nra1GJlYcMO9afJT8tq9Z6R4UcvqLovl4d3jAVaW9qO5yHynhAw== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/components" "^25.8.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/element" "^5.19.0" - "@wordpress/hooks" "^3.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/is-shallow-equal" "^4.42.0" + "@wordpress/components" "^25.9.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/element" "^5.20.0" + "@wordpress/hooks" "^3.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/is-shallow-equal" "^4.43.0" memize "^2.0.1" -"@wordpress/preferences@^3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/preferences/-/preferences-3.19.0.tgz#39075166125ff121ef3e672ce66618ac4d4f32da" - integrity sha512-gjqYtanB6A42rw29aB/c+gOSMaEEqtLlYvAQkaDjjtWlBytx9MeyvLS28u8wS1RlGv7VBVwVkB11GD6dvQUuRQ== +"@wordpress/preferences@^3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/preferences/-/preferences-3.20.0.tgz#48d1aaa4aeede409ba3c57e850dce8bbc5f331b5" + integrity sha512-Tx5an6xiNGC6pCS8X4Uox15j/IE3zxhEG/yfDhkp9MGPzDs53S9F0rsyU7IKtthPYkjW1gQOhJfLgSUasuf3zg== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/a11y" "^3.42.0" - "@wordpress/components" "^25.8.0" - "@wordpress/data" "^9.12.0" - "@wordpress/element" "^5.19.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" + "@wordpress/a11y" "^3.43.0" + "@wordpress/components" "^25.9.0" + "@wordpress/data" "^9.13.0" + "@wordpress/element" "^5.20.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" classnames "^2.3.1" -"@wordpress/primitives@^3.40.0": - version "3.40.0" - resolved "https://registry.yarnpkg.com/@wordpress/primitives/-/primitives-3.40.0.tgz#75bf79546cf80a57d667385abb62b2595b9da750" - integrity sha512-NGrcMsIKA7bBRVJPkiweOeUlnai335fyQTpwASwkpfWLbUTQ+LwKDn6hnwAsLpYot7uwflar2TPJdakglwzfIQ== +"@wordpress/primitives@^3.41.0": + version "3.41.0" + resolved "https://registry.yarnpkg.com/@wordpress/primitives/-/primitives-3.41.0.tgz#aa21969bbdec950bca34a922bc0ec6857af049ab" + integrity sha512-md+4T5VWkWOLSa0p7rBPnKppa30EgYYAdfvqDXLzZTcaO1ZNJAJM3VtLkQPN2qsvLjy3ToT1ZmGF0jsoCP2bAg== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/element" "^5.19.0" + "@wordpress/element" "^5.20.0" classnames "^2.3.1" -"@wordpress/priority-queue@^2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/priority-queue/-/priority-queue-2.42.0.tgz#7c1b052d52ec2c6c0d840a5245fea9cbd73d3ce8" - integrity sha512-AzK9Ds97Wf9lQsukCiX2MKEDe9Txq3vvFhHOS1Gvi2Dji1/DhM9jZ7nBB/dcVQSt5rPyY+1tX9LhjpzeaQgzxg== +"@wordpress/priority-queue@^2.43.0": + version "2.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/priority-queue/-/priority-queue-2.43.0.tgz#9ca994246c5cf3c8b7d661053b7d140d08b8e34c" + integrity sha512-jDsiF+3rMm6jme61AUHxHEIF1gfkCptO/MUdzh7uzyd5ZFnYG8kz+0zU2VX2bXlbqWHYmTsYr446rxTl7nkqRQ== dependencies: "@babel/runtime" "^7.16.0" requestidlecallback "^0.3.0" -"@wordpress/private-apis@^0.24.0": - version "0.24.0" - resolved "https://registry.yarnpkg.com/@wordpress/private-apis/-/private-apis-0.24.0.tgz#8928216775207163f2569b0300b66892a838f7bb" - integrity sha512-KrgDubqppZ+hIbEllIwEDHkXBaAUYmV1dfMLUu6YQpHHlB1ogf3OTkNWmDks8k+9VfywwYnsoWpRuSy3G4WNMA== +"@wordpress/private-apis@^0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@wordpress/private-apis/-/private-apis-0.25.0.tgz#ebbb7d145cb6d023feb5851a90130b2136abd55d" + integrity sha512-y1+U+wAwcjQ5QTDEDGvJbcc0VhyFx0tJh61i6eeBYy2mFXRGJDHyQVjp3agO8YXQdyHeAusVVOKTMT7mZdzUMw== dependencies: "@babel/runtime" "^7.16.0" -"@wordpress/redux-routine@^4.42.0": - version "4.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/redux-routine/-/redux-routine-4.42.0.tgz#1c3e68f638b387949c6d29e788f7f5b0fcd80e29" - integrity sha512-Kt6cLKmPXBh4IYYskR9NMxANTD6soEdt0DLq71vuaoc9SC5akR7J+ChiDpgffHO6zvy5Duc9kWfiC/BRJPi9NQ== +"@wordpress/redux-routine@^4.43.0": + version "4.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/redux-routine/-/redux-routine-4.43.0.tgz#20b7bde0741fed4fe57532fdb08cf201d6ce612b" + integrity sha512-Tc7Q2QgHm+KrWKWCATX+FlaZGaTK/xTFY1m51iWoAJFzvlIoiFOfoVH2FHDppxnxCrvNrRdu2FTagoxx9UzpLw== dependencies: "@babel/runtime" "^7.16.0" is-plain-object "^5.0.0" is-promise "^4.0.0" rungen "^0.3.2" -"@wordpress/reusable-blocks@^4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/reusable-blocks/-/reusable-blocks-4.19.0.tgz#55168d5638b7de23cb166e0882439641d269adff" - integrity sha512-8NkiepDcFKZ6h8xa3/jL3cAGLoXrt+kpoYN2uLheJKiKWfXgAhvWuyFhFRwKKHPX31k1fN5aX7RL0lLCFRacuQ== +"@wordpress/reusable-blocks@^4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/reusable-blocks/-/reusable-blocks-4.20.0.tgz#757a3884a4b7d60507cc546bb150dfcdff6e3b95" + integrity sha512-4qX5aktLKC0ffvQ2gE9F/5y9rCyPQBTg8PCVrFMK9PUTrlZqAkPg2BytBzIn7sEWmYQq9IEuJRR95cLsc1ZZEA== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/block-editor" "^12.10.0" - "@wordpress/blocks" "^12.19.0" - "@wordpress/components" "^25.8.0" - "@wordpress/core-data" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/element" "^5.19.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/notices" "^4.10.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/url" "^3.43.0" - -"@wordpress/rich-text@^6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/rich-text/-/rich-text-6.19.0.tgz#a3a86443fcaeb4c20fe58974f54d5fd57a680187" - integrity sha512-yvZAK6XxF0DDdnkPipSObT364+KMG1yt6sQIE3Zh/bdslr3W/OsxrfycJVB9Tewx/CyNl1hEEcq0vq/NHonWIQ== + "@wordpress/block-editor" "^12.11.0" + "@wordpress/blocks" "^12.20.0" + "@wordpress/components" "^25.9.0" + "@wordpress/core-data" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/element" "^5.20.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/notices" "^4.11.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/url" "^3.44.0" + +"@wordpress/rich-text@^6.20.0": + version "6.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/rich-text/-/rich-text-6.20.0.tgz#036f461ff7f74c56939a52ce5296964765077458" + integrity sha512-MRjSVm6OE4xkgQRIXx+PJUZk9FKJbFVfpSRQDyhjppMDTIxaxPYyiGIkTa3yxTmk1OZu8yfF5eE6oxzxoN1vjg== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/a11y" "^3.42.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/escape-html" "^2.42.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/keycodes" "^3.42.0" + "@wordpress/a11y" "^3.43.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/escape-html" "^2.43.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/keycodes" "^3.43.0" memize "^2.1.0" rememo "^4.0.2" -"@wordpress/router@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@wordpress/router/-/router-0.11.0.tgz#dff1a4c2373be9500661a06369bf7df75abb29b8" - integrity sha512-PtWZTUYOn3yiy+67qEY4hGyIeC5Kue6hjfaxkyJMQpBDjeIZInWYJ7qCTIyMGxDtwl/fkA/7EPUSs9q0XM2f4Q== +"@wordpress/router@^0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@wordpress/router/-/router-0.12.0.tgz#ed2293895bf580d1336e313de173078f55b70d00" + integrity sha512-rXxow4SEZUGPgaJsPGfb0j/bsTPaDWUsOVge2DcVwR4UdG0MCQ+0lO5IGxVaHG4O3s5FIEoCMZ/5bCkTuiMEkg== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/element" "^5.19.0" - "@wordpress/private-apis" "^0.24.0" - "@wordpress/url" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/private-apis" "^0.25.0" + "@wordpress/url" "^3.44.0" history "^5.1.0" -"@wordpress/server-side-render@^4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/server-side-render/-/server-side-render-4.19.0.tgz#0cd48377fdecfd9a542dfcf29116e2855ca32eb2" - integrity sha512-5giLJahslEWxkY9TjHkk2kwMoITJMldDDtbdqvD0X9NVWiYnaQZvW3PZIlAkbgZHhPhvAvyjzKQqGtNlD/jP5Q== +"@wordpress/server-side-render@^4.20.0": + version "4.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/server-side-render/-/server-side-render-4.20.0.tgz#2ef816332c45b28630d989bbf2a751b6b529f0b1" + integrity sha512-ZvD67w2PUlJYFZShYpw0uAFyF9Mnq70E/0km3h/lXoY3N3V6pjglTMtARz9Skmm7Y4YN4IF7UQY88zSsapPezw== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/api-fetch" "^6.39.0" - "@wordpress/blocks" "^12.19.0" - "@wordpress/components" "^25.8.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/deprecated" "^3.42.0" - "@wordpress/element" "^5.19.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/url" "^3.43.0" + "@wordpress/api-fetch" "^6.40.0" + "@wordpress/blocks" "^12.20.0" + "@wordpress/components" "^25.9.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/deprecated" "^3.43.0" + "@wordpress/element" "^5.20.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/url" "^3.44.0" fast-deep-equal "^3.1.3" -"@wordpress/shortcode@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/shortcode/-/shortcode-3.42.0.tgz#2d441f7a10404ba8b280bb6f1a452059771a4902" - integrity sha512-UFtGvUWAc40cVlHMNOYCD5PdUU2vwymlK423oYeq1Y1pcO5XM5zztoi4jeeLVeNp17+VekCbVtJtkNvWGDZzLg== +"@wordpress/shortcode@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/shortcode/-/shortcode-3.43.0.tgz#d12478cbbf216f4f4b7c9a70da3b098dcafecddb" + integrity sha512-vUnrXAoRYi/6ccd08KbFfMZgVxwuLYVRBH6vrGOHsQqPJLYPNkuz11CbM8qd/xUL0j/G2ge17UYH4BTgiKPqhg== dependencies: "@babel/runtime" "^7.16.0" memize "^2.0.1" -"@wordpress/style-engine@^1.25.0": - version "1.25.0" - resolved "https://registry.yarnpkg.com/@wordpress/style-engine/-/style-engine-1.25.0.tgz#308ad6b1a74b3b387f9b1e88420040bca531872c" - integrity sha512-sgkzLQW5mNnYukm2PY1PK2s/U09F604q9jbCVvl7o8td75PYEwVsKuin0xtozYneUK9mlaF4YM6Tckq9eHTClw== +"@wordpress/style-engine@^1.26.0": + version "1.26.0" + resolved "https://registry.yarnpkg.com/@wordpress/style-engine/-/style-engine-1.26.0.tgz#d8a1d6e2dd966a5e89de0cf69c0d40a3983bf0d4" + integrity sha512-+HnlNdpXQtEFD/DotWNHI1cMMVYWAGyYQiNsDd43coLvFRUwDF8ZQxBNAUAfL/KIxm92s9bipmlsJAx8X9LNWQ== dependencies: "@babel/runtime" "^7.16.0" change-case "^4.1.2" -"@wordpress/sync@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@wordpress/sync/-/sync-0.4.0.tgz#644a2f466e558592453ab9ea43fc994a2c0a82a0" - integrity sha512-eeNCY7graDHS7kwrtwPecpJLbCEs2odfHtmsCEetlZnksDr+ohlVZIlmO+JwuVZiAQqedGf5dgIyvCVIDw/xSA== +"@wordpress/sync@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@wordpress/sync/-/sync-0.5.0.tgz#00c3734c2bead0410f18a4d92296db173249348f" + integrity sha512-S1//DqH7XDG5GgXkjH1BpX2KZR0VJJaGdEYMhqnkjS0UgpQ0JAsz2R1zO9I1jfAiU47cV8rd9dAc9J74wcjbnw== dependencies: "@babel/runtime" "^7.16.0" y-indexeddb "~9.0.11" y-webrtc "~10.2.5" yjs "~13.6.6" -"@wordpress/token-list@^2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/token-list/-/token-list-2.42.0.tgz#55792d219b2a76f358ecf14e4d85df04b0b8d4db" - integrity sha512-c8eGFsXaFsAJ4VsKr1puwGXU+fPG/p6+SNuHkPq2b4DL6F/GOvW9uW0ud9yr1Cjx1eCC9sse12w5xy5WWcEUmQ== +"@wordpress/token-list@^2.43.0": + version "2.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/token-list/-/token-list-2.43.0.tgz#72d0c9dd858429de26ed14514d53c16a86441e32" + integrity sha512-g7DfKZy//IFpABM/xxdbxV2mk8ams/lNulp2DjMns8YzvrylKbr2ZW/QlqWwkjIctPNSjN6+cB4+26nNqaIliQ== dependencies: "@babel/runtime" "^7.16.0" -"@wordpress/undo-manager@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@wordpress/undo-manager/-/undo-manager-0.2.0.tgz#e6f71d394da9d26497a91f647181adec65772002" - integrity sha512-Ke8M16P3itOgRt4Rv2ptNQ5elw2k7tm8kfHkqvIglGjPVXqUhCzrhdejDzApkxL5otTH4m0T4uFAPX/dLRrl9g== +"@wordpress/undo-manager@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@wordpress/undo-manager/-/undo-manager-0.3.0.tgz#e76ec0652ba61ac261e339cef1dd7ee91aa7ad74" + integrity sha512-buZRSisLRgQKJrhr7c1FSydrWgHEH/0AxlEJ9gqIjsUHsG6D39Cx6RcZYX5eW5NBL3nTDVeVD4STNyHGNA+ZdQ== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/is-shallow-equal" "^4.42.0" + "@wordpress/is-shallow-equal" "^4.43.0" -"@wordpress/url@^3.43.0": - version "3.43.0" - resolved "https://registry.yarnpkg.com/@wordpress/url/-/url-3.43.0.tgz#84b0a1268e43aa04c643fefd3b3532cb67be4b66" - integrity sha512-4Mh7qqP33+RpT90Opsv2qJqqn8Imonofv8IC5P+qnS9gAnozB5req/XF0VqIp1PMzPaylO1Yd8jX2YvtD+GX/Q== +"@wordpress/url@^3.44.0": + version "3.44.0" + resolved "https://registry.yarnpkg.com/@wordpress/url/-/url-3.44.0.tgz#e9b7ee9cba6389a2a00d590ce7c14337f97807c3" + integrity sha512-QNtTPFg/cGHTJLOvOtQCvCgn5quFQgJml8A88I05o4dyUH/tc92rb8LNXi0qcVz/z4JPrx2g3+Ki8heYellP4A== dependencies: "@babel/runtime" "^7.16.0" remove-accents "^0.5.0" -"@wordpress/viewport@^5.19.0": - version "5.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/viewport/-/viewport-5.19.0.tgz#caae040ae43c82453b89369b6e82c2870c539824" - integrity sha512-AlyW2SdO4XjiKuALNUdHAI3HBa8TN/BQA0KmWJHvK+Y1CBax0CK+l3I2OYum9KyeEMn1EITOMYxfh6SvY/SBtQ== +"@wordpress/viewport@^5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/viewport/-/viewport-5.20.0.tgz#2e603ebc56ec30fa82f76233a49e19ddacbc4fb6" + integrity sha512-FIJHYjL//zT5K2jJEYeddWnTgw5R/PWl1Yg3bTGsz4fhuHg5mFHKHiKG99l9pX5eaMKJQ82h9jT1as/xi3KPCw== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/element" "^5.19.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/element" "^5.20.0" -"@wordpress/warning@^2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/warning/-/warning-2.42.0.tgz#6e0b47cbad3835bf130bc08ed4039a7527dc31b7" - integrity sha512-EfJ9EBmqHu9RkM3PpcTY7CJWGj5huR1X8x3LJ2RWLg5vmHu35dtpGje7ecssUPLxZYwAiUxfc+DeN51pG9mVzg== +"@wordpress/warning@^2.43.0": + version "2.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/warning/-/warning-2.43.0.tgz#6bdaa6c21e3910879727c8555a4c64c1630ef71d" + integrity sha512-LPTc3Vf3Vy9DpL1foC49PCeGKnid9JdahPoaZhFX/WMG1VLelLBEwSLln/x7cq6c+8e8xbbex02t5IhbtLiEIw== -"@wordpress/widgets@^3.19.0": - version "3.19.0" - resolved "https://registry.yarnpkg.com/@wordpress/widgets/-/widgets-3.19.0.tgz#0ebdd8d7336087c70e8ef415b37eefa71bcc96b1" - integrity sha512-S0Mzi0DsyqIIDhYkC5Ps5MNTbXFmF/z04DANRKMN0fPCGDU19KSa4i45BV5hEfHFHRAAn8oqNlOcgjmY/qjh8Q== +"@wordpress/widgets@^3.20.0": + version "3.20.0" + resolved "https://registry.yarnpkg.com/@wordpress/widgets/-/widgets-3.20.0.tgz#1c29ebc843cd88f4e147d60584df6c938f0f9946" + integrity sha512-nfAHRiwb8kNFj2S23MVpRRLI+gdpphC96Ys5UwkmYIRye5rLyRd3vckyZjuVQBem2cPSYOtKMnfc/5jiR127rg== dependencies: "@babel/runtime" "^7.16.0" - "@wordpress/api-fetch" "^6.39.0" - "@wordpress/block-editor" "^12.10.0" - "@wordpress/blocks" "^12.19.0" - "@wordpress/components" "^25.8.0" - "@wordpress/compose" "^6.19.0" - "@wordpress/core-data" "^6.19.0" - "@wordpress/data" "^9.12.0" - "@wordpress/element" "^5.19.0" - "@wordpress/i18n" "^4.42.0" - "@wordpress/icons" "^9.33.0" - "@wordpress/notices" "^4.10.0" + "@wordpress/api-fetch" "^6.40.0" + "@wordpress/block-editor" "^12.11.0" + "@wordpress/blocks" "^12.20.0" + "@wordpress/components" "^25.9.0" + "@wordpress/compose" "^6.20.0" + "@wordpress/core-data" "^6.20.0" + "@wordpress/data" "^9.13.0" + "@wordpress/element" "^5.20.0" + "@wordpress/i18n" "^4.43.0" + "@wordpress/icons" "^9.34.0" + "@wordpress/notices" "^4.11.0" classnames "^2.3.1" -"@wordpress/wordcount@^3.42.0": - version "3.42.0" - resolved "https://registry.yarnpkg.com/@wordpress/wordcount/-/wordcount-3.42.0.tgz#e239c513f6c1ab5c5dadd0a36778b0b7eaa7df5a" - integrity sha512-IH93FertNhMORamKrVwzC7U5oosG8rxwXF4JKuDz7ds7puCZNl4g37FNDHysUP69EctpLMQQeI5iVjqW5AzYMA== +"@wordpress/wordcount@^3.43.0": + version "3.43.0" + resolved "https://registry.yarnpkg.com/@wordpress/wordcount/-/wordcount-3.43.0.tgz#2c804920ced2e1016119994c4eac757908dca660" + integrity sha512-++mxwBJpjRr65JT6dx0jOT4Ffhh0wuoCHJLgz/qulBMjPh9xiLpUBMhjdaed1DRaOeJIxPV8q4zHL5SHcJS3Ng== dependencies: "@babel/runtime" "^7.16.0" @@ -9799,11 +9810,6 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -turbo-combine-reducers@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/turbo-combine-reducers/-/turbo-combine-reducers-1.0.2.tgz#aa3650b3c63daa6804d35a4042014f6d31df1e47" - integrity sha512-gHbdMZlA6Ym6Ur5pSH/UWrNQMIM9IqTH6SoL1DbHpqEdQ8i+cFunSmSlFykPt0eGQwZ4d/XTHOl74H0/kFBVWw== - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -10081,10 +10087,10 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== v8flags@^3.2.0: version "3.2.0" From 75dc709cb53e846fb18fff07ea72babfc0ec3f2f Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Tue, 10 Oct 2023 19:18:14 +0100 Subject: [PATCH 02/27] Fixed gutenberg notice in widgets page --- .../construct-wp/languages/construct-wp.pot | 4 ++-- .../models/class-construct-wp-gutenberg.php | 22 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 95e6a3f..8e82edd 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-10 15:18+0000\n" +"POT-Creation-Date: 2023-10-10 18:17+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -84,7 +84,7 @@ msgstr "" msgid "ConstructWP" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:207 +#: plugins/construct-wp/models/class-construct-wp-settings.php:209 msgid "Settings" msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp-gutenberg.php b/plugins/construct-wp/models/class-construct-wp-gutenberg.php index 6291028..3afab30 100644 --- a/plugins/construct-wp/models/class-construct-wp-gutenberg.php +++ b/plugins/construct-wp/models/class-construct-wp-gutenberg.php @@ -31,16 +31,18 @@ public static function init() { * @return void */ public static function enqueue_assets() { - wp_enqueue_script( 'cwp-gutenberg', CWP_PLUGIN_URL . 'assets/js/construct-wp-gutenberg.js', array( - 'wp-blocks', - 'wp-i18n', - 'wp-edit-post', - 'wp-element', - 'wp-components', - 'wp-block-editor', - 'wp-plugins', - ), true ); - wp_enqueue_style( 'cwp-gutenberg', CWP_PLUGIN_URL . 'assets/css/construct-wp-gutenberg.css', array( 'wp-edit-blocks' ), true ); + global $pagenow; + + if ( $pagenow !== 'widgets.php' ) { + wp_enqueue_script( 'cwp-gutenberg', CWP_PLUGIN_URL . 'assets/js/construct-wp-gutenberg.js', array( + 'wp-components', + 'wp-data', + 'wp-edit-post', + 'wp-i18n', + 'wp-plugins', + ), true ); + wp_enqueue_style( 'cwp-gutenberg', CWP_PLUGIN_URL . 'assets/css/construct-wp-gutenberg.css', array( 'wp-edit-blocks' ), true ); + } } } From b4f6608c53b879672e2575b49112284539de194d Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Tue, 10 Oct 2023 19:35:02 +0100 Subject: [PATCH 03/27] Removed .gitignore for assets --- .gitignore | 7 +- .gulpconfig.js | 8 +- .../assets/css/construct-wp-admin.css | 4 + .../assets/css/construct-wp-admin.css.map | 1 + .../assets/css/construct-wp-gutenberg.css | 4 + .../assets/css/construct-wp-gutenberg.css.map | 1 + .../assets/css/construct-wp-settings.css | 219 ++++++ .../assets/css/construct-wp-settings.css.map | 1 + plugins/construct-wp/assets/css/email.css | 91 +++ plugins/construct-wp/assets/css/email.css.map | 1 + .../assets/js/construct-wp-gutenberg.js | 213 ++++++ .../assets/js/construct-wp-gutenberg.js.map | 1 + .../assets/js/construct-wp-settings.js | 663 ++++++++++++++++++ .../assets/js/construct-wp-settings.js.map | 1 + 14 files changed, 1209 insertions(+), 6 deletions(-) create mode 100644 plugins/construct-wp/assets/css/construct-wp-admin.css create mode 100644 plugins/construct-wp/assets/css/construct-wp-admin.css.map create mode 100644 plugins/construct-wp/assets/css/construct-wp-gutenberg.css create mode 100644 plugins/construct-wp/assets/css/construct-wp-gutenberg.css.map create mode 100644 plugins/construct-wp/assets/css/construct-wp-settings.css create mode 100644 plugins/construct-wp/assets/css/construct-wp-settings.css.map create mode 100644 plugins/construct-wp/assets/css/email.css create mode 100644 plugins/construct-wp/assets/css/email.css.map create mode 100644 plugins/construct-wp/assets/js/construct-wp-gutenberg.js create mode 100644 plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map create mode 100644 plugins/construct-wp/assets/js/construct-wp-settings.js create mode 100644 plugins/construct-wp/assets/js/construct-wp-settings.js.map diff --git a/.gitignore b/.gitignore index fb39623..8f748ca 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,9 @@ vendor/ # Misc *.log -# Compiled files -assets/ +# Archives dist/ +*.zip +*.tar +*.gz +*.tgz diff --git a/.gulpconfig.js b/.gulpconfig.js index 1525f00..a359d6e 100644 --- a/.gulpconfig.js +++ b/.gulpconfig.js @@ -43,7 +43,7 @@ module.exports = { src: { allowEmpty: true, base: `${areas.constructWp.path}/src/scss`, - sourcemaps: process.env.NODE_ENV !== 'development', + sourcemaps: process.env.NODE_ENV === 'development', }, dest: { sourcemaps: '.', @@ -123,7 +123,7 @@ module.exports = { src: { allowEmpty: true, base: `${areas.constructWp.path}/src/gutenberg`, - sourcemaps: process.env.NODE_ENV !== 'development', + sourcemaps: process.env.NODE_ENV === 'development', }, dest: { sourcemaps: '.', @@ -201,8 +201,8 @@ module.exports = { resolve: { extensions: ['.js', '.jsx', '.json'], }, - devtool: process.env.NODE_ENV == 'development' ? 'source-map' : false, - mode: process.env.NODE_ENV == 'development' ? 'development' : 'production', + devtool: process.env.NODE_ENV === 'development' ? 'source-map' : false, + mode: process.env.NODE_ENV === 'development' ? 'development' : 'production', }, }, uglify: { diff --git a/plugins/construct-wp/assets/css/construct-wp-admin.css b/plugins/construct-wp/assets/css/construct-wp-admin.css new file mode 100644 index 0000000..b33d490 --- /dev/null +++ b/plugins/construct-wp/assets/css/construct-wp-admin.css @@ -0,0 +1,4 @@ +.menu-item.menu-item-depth-0 .cwp-link_type { + display: none; +} +/*# sourceMappingURL=construct-wp-admin.css.map */ \ No newline at end of file diff --git a/plugins/construct-wp/assets/css/construct-wp-admin.css.map b/plugins/construct-wp/assets/css/construct-wp-admin.css.map new file mode 100644 index 0000000..6f37d35 --- /dev/null +++ b/plugins/construct-wp/assets/css/construct-wp-admin.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["construct-wp-admin.scss","construct-wp-admin.css"],"names":[],"mappings":"AAEQ;EACI,aAAA;ACDZ","file":"construct-wp-admin.css","sourcesContent":[".menu-item {\n &.menu-item-depth-0 {\n .cwp-link_type {\n display: none;\n }\n }\n}\n",".menu-item.menu-item-depth-0 .cwp-link_type {\n display: none;\n}"]} \ No newline at end of file diff --git a/plugins/construct-wp/assets/css/construct-wp-gutenberg.css b/plugins/construct-wp/assets/css/construct-wp-gutenberg.css new file mode 100644 index 0000000..4a9d051 --- /dev/null +++ b/plugins/construct-wp/assets/css/construct-wp-gutenberg.css @@ -0,0 +1,4 @@ +body { + cursor: default; +} +/*# sourceMappingURL=construct-wp-gutenberg.css.map */ \ No newline at end of file diff --git a/plugins/construct-wp/assets/css/construct-wp-gutenberg.css.map b/plugins/construct-wp/assets/css/construct-wp-gutenberg.css.map new file mode 100644 index 0000000..c1ab93d --- /dev/null +++ b/plugins/construct-wp/assets/css/construct-wp-gutenberg.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["construct-wp-gutenberg.scss","construct-wp-gutenberg.css"],"names":[],"mappings":"AAAA;EACI,eAAA;ACCJ","file":"construct-wp-gutenberg.css","sourcesContent":["body {\n cursor: default;\n}\n","body {\n cursor: default;\n}"]} \ No newline at end of file diff --git a/plugins/construct-wp/assets/css/construct-wp-settings.css b/plugins/construct-wp/assets/css/construct-wp-settings.css new file mode 100644 index 0000000..022caa5 --- /dev/null +++ b/plugins/construct-wp/assets/css/construct-wp-settings.css @@ -0,0 +1,219 @@ +body { + background-color: #e9ecef; +} + +#wpcontent { + padding-left: 0; +} +#wpcontent *, +#wpcontent *::before, +#wpcontent *::after { + box-sizing: border-box; +} + +#construct-wp-settings { + --wp-components-color-accent: #11bd0b; + --wp-components-color-accent--rgb: 17, 189, 11; + --wp-components-color-accent-darker-10: #0faa0a; + --wp-components-color-accent-darker-10--rgb: 15, 170, 10; + --wp-components-color-accent-darker-20: #0e9709; + --wp-components-color-accent-darker-20--rgb: 14, 151, 9; + --wp-components-color-accent-inverted: #fff; + --wp-components-color-accent-inverted--rgb: 255, 255, 255; + --wp-components-color-accent-background: #fff; + --wp-components-color-accent-background--rgb: 255, 255, 255; + --wp-components-color-accent-foreground: #14143b; + --wp-components-color-accent-foreground--to-rgb: 20, 20, 59; + --wp-components-color-accent-foreground-inverted: #fff; + --wp-components-color-accent-foreground-inverted--to-rgb: 255, 255, 255; + color: var(--wp-components-color-accent-foreground); +} +#construct-wp-settings, +#construct-wp-settings * { + font-size: 1rem; +} +#construct-wp-settings h1, +#construct-wp-settings h2, +#construct-wp-settings h3, +#construct-wp-settings h4, +#construct-wp-settings h5, +#construct-wp-settings h6 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 400; + line-height: 1.2; + color: var(--wp-components-color-accent-foreground); +} +#construct-wp-settings h1 { + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + #construct-wp-settings h1 { + font-size: 2.5rem; + } +} +#construct-wp-settings h2 { + margin-bottom: 1.5rem; + font-size: calc(1.325rem + 0.9vw); +} +@media (min-width: 1200px) { + #construct-wp-settings h2 { + font-size: 2rem; + } +} +#construct-wp-settings h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + #construct-wp-settings h3 { + font-size: 1.75rem; + } +} +#construct-wp-settings h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + #construct-wp-settings h4 { + font-size: 1.5rem; + } +} +#construct-wp-settings h5 { + font-size: 1.25rem; +} +#construct-wp-settings h6 { + font-size: 1rem; +} +#construct-wp-settings p { + margin-top: 0; + margin-bottom: 1rem; +} +#construct-wp-settings label { + font-size: 1rem; +} +#construct-wp-settings hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: 1px solid; + opacity: 0.25; +} +#construct-wp-settings .construct-wp__header, +#construct-wp-settings .construct-wp__main { + background-color: var(--wp-components-color-accent-background); +} +#construct-wp-settings .construct-wp__header { + padding: 1rem 1.5rem 0; +} +#construct-wp-settings .construct-wp__main { + padding: 1.25rem 2rem; + margin: 1rem; +} +#construct-wp-settings .construct-wp__container { + width: 100%; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 576px) { + #construct-wp-settings .construct-wp__container { + max-width: 540px; + } +} +@media (min-width: 768px) { + #construct-wp-settings .construct-wp__container { + max-width: 720px; + } +} +@media (min-width: 992px) { + #construct-wp-settings .construct-wp__container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + #construct-wp-settings .construct-wp__container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + #construct-wp-settings .construct-wp__container { + max-width: 1320px; + } +} +#construct-wp-settings .construct-wp__logo { + max-height: 50px; + margin-right: 1rem; +} +#construct-wp-settings .components-tab-panel__tabs-item { + padding-top: 0; +} +#construct-wp-settings .components-tab-panel__tab-content { + display: none; +} +#construct-wp-settings .components-base-control__help { + color: rgb(var(--wp-components-color-accent-foreground--to-rgb), 0.675); +} +#construct-wp-settings .construct-wp__checklist { + -moz-columns: auto 2; + columns: auto 2; + -moz-column-gap: 2rem; + column-gap: 2rem; +} +#construct-wp-settings .construct-wp__checklist .components-base-control__field { + margin-bottom: 0.5rem; +} +#construct-wp-settings .construct-wp__loading-spinner { + display: inline-block; + width: 2rem; + height: 2rem; + margin-top: 3rem; + margin-bottom: 3rem; + vertical-align: -0.125em; + border: 0.25em solid #ced4da; + border-right-color: var(--wp-components-color-accent); + border-radius: 50%; + animation: 0.75s linear infinite spinner-border; +} +#construct-wp-settings .construct-wp__title { + display: flex; + flex-wrap: wrap; + align-items: center; +} +#construct-wp-settings .construct-wp__version-badge { + display: inline-block; + padding: 0.35em 0.65em; + font-size: 0.9rem; + line-height: 1; + color: var(--wp-components-color-accent-inverted); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: var(--wp-components-color-accent); + border: 1px solid var(--wp-components-color-accent); + /* stylelint-disable-next-line property-disallowed-list */ + border-radius: 0.375rem; +} +#construct-wp-settings .construct-wp__notices .components-snackbar { + position: fixed; + bottom: 0.5rem; + margin-left: 0.5rem; +} +#construct-wp-settings .construct-wp__notices .components-snackbar .components-snackbar__content-with-icon { + align-items: center; + margin-left: 0; +} +#construct-wp-settings .construct-wp__notices .components-snackbar .components-snackbar__icon { + position: static; + margin-right: 0.5rem; + /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */ + font-family: dashicons; + font-size: 1.25rem; + font-style: normal; + line-height: 1; + vertical-align: top; +} + +@keyframes spinner-border { + to { + transform: rotate(360deg); + } +} +/*# sourceMappingURL=construct-wp-settings.css.map */ \ No newline at end of file diff --git a/plugins/construct-wp/assets/css/construct-wp-settings.css.map b/plugins/construct-wp/assets/css/construct-wp-settings.css.map new file mode 100644 index 0000000..918d752 --- /dev/null +++ b/plugins/construct-wp/assets/css/construct-wp-settings.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["construct-wp-settings.scss","construct-wp-settings.css"],"names":[],"mappings":"AAaA;EACI,yBAAA;ACZJ;;ADeA;EACI,eAAA;ACZJ;ADcI;;;EAGI,sBAAA;ACZR;;ADgBA;EACI,qCAAA;EACA,8CAAA;EACA,+CAAA;EACA,wDAAA;EACA,+CAAA;EACA,uDAAA;EACA,2CAAA;EACA,yDAAA;EACA,6CAAA;EACA,2DAAA;EACA,gDAAA;EACA,2DAAA;EACA,sDAAA;EACA,uEAAA;EAEA,mDAAA;ACdJ;ADgBI;;EAEI,eAAA;ACdR;ADiBI;;;;;;EAMI,aAAA;EACA,qBAAA;EACA,gBAAA;EACA,gBAAA;EACA,mDAAA;ACfR;ADkBI;EACI,iCAAA;AChBR;ADkBQ;EAHJ;IAIQ,iBAAA;ECfV;AACF;ADkBI;EACI,qBAAA;EACA,iCAAA;AChBR;ADkBQ;EAJJ;IAKQ,eAAA;ECfV;AACF;ADkBI;EACI,+BAAA;AChBR;ADkBQ;EAHJ;IAIQ,kBAAA;ECfV;AACF;ADkBI;EACI,iCAAA;AChBR;ADkBQ;EAHJ;IAIQ,iBAAA;ECfV;AACF;ADkBI;EACI,kBAAA;AChBR;ADmBI;EACI,eAAA;ACjBR;ADoBI;EACI,aAAA;EACA,mBAAA;AClBR;ADqBI;EACI,eAAA;ACnBR;ADsBI;EACI,cAAA;EACA,cAAA;EACA,SAAA;EACA,qBAAA;EACA,aAAA;ACpBR;ADuBI;;EAEI,8DAAA;ACrBR;ADwBI;EACI,sBAAA;ACtBR;ADyBI;EACI,qBAAA;EACA,YAAA;ACvBR;AD0BI;EACI,WAAA;EACA,kBAAA;EACA,iBAAA;ACxBR;AD0BQ;EALJ;IAMQ,gBAAA;ECvBV;AACF;ADyBQ;EATJ;IAUQ,gBAAA;ECtBV;AACF;ADwBQ;EAbJ;IAcQ,gBAAA;ECrBV;AACF;ADuBQ;EAjBJ;IAkBQ,iBAAA;ECpBV;AACF;ADsBQ;EArBJ;IAsBQ,iBAAA;ECnBV;AACF;ADsBI;EACI,gBAAA;EACA,kBAAA;ACpBR;ADuBI;EACI,cAAA;ACrBR;ADwBI;EACI,aAAA;ACtBR;ADyBI;EACI,uEAAA;ACvBR;AD0BI;EACI,oBAAA;EAAA,eAAA;EACA,qBAAA;EAAA,gBAAA;ACxBR;AD0BQ;EACI,qBAAA;ACxBZ;AD6BI;EACI,qBAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,mBAAA;EACA,wBAAA;EACA,4BAAA;EACA,qDAAA;EAEA,kBAAA;EACA,+CAAA;AC5BR;AD+BI;EACI,aAAA;EACA,eAAA;EACA,mBAAA;AC7BR;ADgCI;EACI,qBAAA;EACA,sBAAA;EACA,iBAAA;EACA,cAAA;EACA,iDAAA;EACA,kBAAA;EACA,mBAAA;EACA,wBAAA;EACA,mDAAA;EACA,mDAAA;EACA,yDAAA;EACA,uBAAA;AC9BR;ADkCQ;EACI,eAAA;EACA,cAAA;EACA,mBAAA;AChCZ;ADkCY;EACI,mBAAA;EACA,cAAA;AChChB;ADmCY;EACI,gBAAA;EACA,oBAAA;EACA,8EAAA;EACA,sBAAA;EACA,kBAAA;EACA,kBAAA;EACA,cAAA;EACA,mBAAA;ACjChB;;ADuCA;EACI;IACI,yBAAA;ECpCN;AACF","file":"construct-wp-settings.css","sourcesContent":["// Bootstrap functions first to manipulate colors, SVGs, calc, etc\n@import \"node_modules/bootstrap/scss/functions\";\n// Remainder of the Bootstrap variables\n@import \"node_modules/bootstrap/scss/variables\";\n@import \"node_modules/bootstrap/scss/variables-dark\";\n\n// Remainder of required Bootstrap parts\n@import \"node_modules/bootstrap/scss/maps\";\n@import \"node_modules/bootstrap/scss/mixins\";\n\n$cwp-primary: #11bd0b;\n$cwp-secondary: #14143b;\n\nbody {\n background-color: #e9ecef;\n}\n\n#wpcontent {\n padding-left: 0;\n\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n}\n\n#construct-wp-settings {\n --wp-components-color-accent: #{$cwp-primary};\n --wp-components-color-accent--rgb: #{to-rgb($cwp-primary)};\n --wp-components-color-accent-darker-10: #{shade-color($cwp-primary, 10%)};\n --wp-components-color-accent-darker-10--rgb: #{to-rgb(shade-color($cwp-primary, 10%))};\n --wp-components-color-accent-darker-20: #{shade-color($cwp-primary, 20%)};\n --wp-components-color-accent-darker-20--rgb: #{to-rgb(shade-color($cwp-primary, 20%))};\n --wp-components-color-accent-inverted: #{$white};\n --wp-components-color-accent-inverted--rgb: #{to-rgb($white)};\n --wp-components-color-accent-background: #{$white};\n --wp-components-color-accent-background--rgb: #{to-rgb($white)};\n --wp-components-color-accent-foreground: #{$cwp-secondary};\n --wp-components-color-accent-foreground--to-rgb: #{to-rgb($cwp-secondary)};\n --wp-components-color-accent-foreground-inverted: #{$white};\n --wp-components-color-accent-foreground-inverted--to-rgb: #{to-rgb($white)};\n\n color: var(--wp-components-color-accent-foreground);\n\n &,\n * {\n font-size: 1rem;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n margin-bottom: .5rem;\n font-weight: 400;\n line-height: 1.2;\n color: var(--wp-components-color-accent-foreground);\n }\n\n h1 {\n font-size: calc(1.375rem + 1.5vw);\n\n @media (min-width: 1200px) {\n font-size: 2.5rem;\n }\n }\n\n h2 {\n margin-bottom: 1.5rem;\n font-size: calc(1.325rem + .9vw);\n\n @media (min-width: 1200px) {\n font-size: 2rem;\n }\n }\n\n h3 {\n font-size: calc(1.3rem + .6vw);\n\n @media (min-width: 1200px) {\n font-size: 1.75rem;\n }\n }\n\n h4 {\n font-size: calc(1.275rem + .3vw);\n\n @media (min-width: 1200px) {\n font-size: 1.5rem;\n }\n }\n\n h5 {\n font-size: 1.25rem;\n }\n\n h6 {\n font-size: 1rem;\n }\n\n p {\n margin-top: 0;\n margin-bottom: 1rem;\n }\n\n label {\n font-size: 1rem;\n }\n\n hr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: 1px solid;\n opacity: .25;\n }\n\n .construct-wp__header,\n .construct-wp__main {\n background-color: var(--wp-components-color-accent-background);\n }\n\n .construct-wp__header {\n padding: 1rem 1.5rem 0;\n }\n\n .construct-wp__main {\n padding: 1.25rem 2rem;\n margin: 1rem;\n }\n\n .construct-wp__container {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n\n @media (min-width: 576px) {\n max-width: 540px;\n }\n\n @media (min-width: 768px) {\n max-width: 720px;\n }\n\n @media (min-width: 992px) {\n max-width: 960px;\n }\n\n @media (min-width: 1200px) {\n max-width: 1140px;\n }\n\n @media (min-width: 1400px) {\n max-width: 1320px;\n }\n }\n\n .construct-wp__logo {\n max-height: 50px;\n margin-right: 1rem;\n }\n\n .components-tab-panel__tabs-item {\n padding-top: 0;\n }\n\n .components-tab-panel__tab-content {\n display: none;\n }\n\n .components-base-control__help {\n color: rgb(var(--wp-components-color-accent-foreground--to-rgb), .675);\n }\n\n .construct-wp__checklist {\n columns: auto 2;\n column-gap: 2rem;\n\n .components-base-control__field {\n margin-bottom: .5rem;\n }\n }\n\n\n .construct-wp__loading-spinner {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n margin-top: 3rem;\n margin-bottom: 3rem;\n vertical-align: -.125em;\n border: .25em solid #ced4da;\n border-right-color: var(--wp-components-color-accent);\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 50%;\n animation: .75s linear infinite spinner-border;\n }\n\n .construct-wp__title {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n }\n\n .construct-wp__version-badge {\n display: inline-block;\n padding: .35em .65em;\n font-size: .9rem;\n line-height: 1;\n color: var(--wp-components-color-accent-inverted);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--wp-components-color-accent);\n border: 1px solid var(--wp-components-color-accent);\n /* stylelint-disable-next-line property-disallowed-list */\n border-radius: .375rem;\n }\n\n .construct-wp__notices {\n .components-snackbar {\n position: fixed;\n bottom: .5rem;\n margin-left: .5rem;\n\n .components-snackbar__content-with-icon {\n align-items: center;\n margin-left: 0;\n }\n\n .components-snackbar__icon {\n position: static;\n margin-right: .5rem;\n /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */\n font-family: dashicons;\n font-size: 1.25rem;\n font-style: normal;\n line-height: 1;\n vertical-align: top;\n }\n }\n }\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n","body {\n background-color: #e9ecef;\n}\n\n#wpcontent {\n padding-left: 0;\n}\n#wpcontent *,\n#wpcontent *::before,\n#wpcontent *::after {\n box-sizing: border-box;\n}\n\n#construct-wp-settings {\n --wp-components-color-accent: #11bd0b;\n --wp-components-color-accent--rgb: 17, 189, 11;\n --wp-components-color-accent-darker-10: #0faa0a;\n --wp-components-color-accent-darker-10--rgb: 15, 170, 10;\n --wp-components-color-accent-darker-20: #0e9709;\n --wp-components-color-accent-darker-20--rgb: 14, 151, 9;\n --wp-components-color-accent-inverted: #fff;\n --wp-components-color-accent-inverted--rgb: 255, 255, 255;\n --wp-components-color-accent-background: #fff;\n --wp-components-color-accent-background--rgb: 255, 255, 255;\n --wp-components-color-accent-foreground: #14143b;\n --wp-components-color-accent-foreground--to-rgb: 20, 20, 59;\n --wp-components-color-accent-foreground-inverted: #fff;\n --wp-components-color-accent-foreground-inverted--to-rgb: 255, 255, 255;\n color: var(--wp-components-color-accent-foreground);\n}\n#construct-wp-settings,\n#construct-wp-settings * {\n font-size: 1rem;\n}\n#construct-wp-settings h1,\n#construct-wp-settings h2,\n#construct-wp-settings h3,\n#construct-wp-settings h4,\n#construct-wp-settings h5,\n#construct-wp-settings h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 400;\n line-height: 1.2;\n color: var(--wp-components-color-accent-foreground);\n}\n#construct-wp-settings h1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n #construct-wp-settings h1 {\n font-size: 2.5rem;\n }\n}\n#construct-wp-settings h2 {\n margin-bottom: 1.5rem;\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n #construct-wp-settings h2 {\n font-size: 2rem;\n }\n}\n#construct-wp-settings h3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n #construct-wp-settings h3 {\n font-size: 1.75rem;\n }\n}\n#construct-wp-settings h4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n #construct-wp-settings h4 {\n font-size: 1.5rem;\n }\n}\n#construct-wp-settings h5 {\n font-size: 1.25rem;\n}\n#construct-wp-settings h6 {\n font-size: 1rem;\n}\n#construct-wp-settings p {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n#construct-wp-settings label {\n font-size: 1rem;\n}\n#construct-wp-settings hr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: 1px solid;\n opacity: 0.25;\n}\n#construct-wp-settings .construct-wp__header,\n#construct-wp-settings .construct-wp__main {\n background-color: var(--wp-components-color-accent-background);\n}\n#construct-wp-settings .construct-wp__header {\n padding: 1rem 1.5rem 0;\n}\n#construct-wp-settings .construct-wp__main {\n padding: 1.25rem 2rem;\n margin: 1rem;\n}\n#construct-wp-settings .construct-wp__container {\n width: 100%;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 576px) {\n #construct-wp-settings .construct-wp__container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n #construct-wp-settings .construct-wp__container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n #construct-wp-settings .construct-wp__container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n #construct-wp-settings .construct-wp__container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n #construct-wp-settings .construct-wp__container {\n max-width: 1320px;\n }\n}\n#construct-wp-settings .construct-wp__logo {\n max-height: 50px;\n margin-right: 1rem;\n}\n#construct-wp-settings .components-tab-panel__tabs-item {\n padding-top: 0;\n}\n#construct-wp-settings .components-tab-panel__tab-content {\n display: none;\n}\n#construct-wp-settings .components-base-control__help {\n color: rgb(var(--wp-components-color-accent-foreground--to-rgb), 0.675);\n}\n#construct-wp-settings .construct-wp__checklist {\n columns: auto 2;\n column-gap: 2rem;\n}\n#construct-wp-settings .construct-wp__checklist .components-base-control__field {\n margin-bottom: 0.5rem;\n}\n#construct-wp-settings .construct-wp__loading-spinner {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n margin-top: 3rem;\n margin-bottom: 3rem;\n vertical-align: -0.125em;\n border: 0.25em solid #ced4da;\n border-right-color: var(--wp-components-color-accent);\n border-radius: 50%;\n animation: 0.75s linear infinite spinner-border;\n}\n#construct-wp-settings .construct-wp__title {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n#construct-wp-settings .construct-wp__version-badge {\n display: inline-block;\n padding: 0.35em 0.65em;\n font-size: 0.9rem;\n line-height: 1;\n color: var(--wp-components-color-accent-inverted);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n background-color: var(--wp-components-color-accent);\n border: 1px solid var(--wp-components-color-accent);\n /* stylelint-disable-next-line property-disallowed-list */\n border-radius: 0.375rem;\n}\n#construct-wp-settings .construct-wp__notices .components-snackbar {\n position: fixed;\n bottom: 0.5rem;\n margin-left: 0.5rem;\n}\n#construct-wp-settings .construct-wp__notices .components-snackbar .components-snackbar__content-with-icon {\n align-items: center;\n margin-left: 0;\n}\n#construct-wp-settings .construct-wp__notices .components-snackbar .components-snackbar__icon {\n position: static;\n margin-right: 0.5rem;\n /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */\n font-family: dashicons;\n font-size: 1.25rem;\n font-style: normal;\n line-height: 1;\n vertical-align: top;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}"]} \ No newline at end of file diff --git a/plugins/construct-wp/assets/css/email.css b/plugins/construct-wp/assets/css/email.css new file mode 100644 index 0000000..f0c42f3 --- /dev/null +++ b/plugins/construct-wp/assets/css/email.css @@ -0,0 +1,91 @@ +h6, h5, h4, h3, h2, h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +h1 { + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + h1 { + font-size: 2.5rem; + } +} + +h2 { + font-size: calc(1.325rem + 0.9vw); +} +@media (min-width: 1200px) { + h2 { + font-size: 2rem; + } +} + +h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3 { + font-size: 1.75rem; + } +} + +h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + h4 { + font-size: 1.5rem; + } +} + +h5 { + font-size: 1.25rem; +} + +h6 { + font-size: 1rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +.container { + box-sizing: border-box; + width: 100%; + padding-right: 0.75rem; + padding-left: 0.75rem; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container { + max-width: 1320px; + } +} +/*# sourceMappingURL=email.css.map */ \ No newline at end of file diff --git a/plugins/construct-wp/assets/css/email.css.map b/plugins/construct-wp/assets/css/email.css.map new file mode 100644 index 0000000..c308d46 --- /dev/null +++ b/plugins/construct-wp/assets/css/email.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["email.scss","../../../../node_modules/bootstrap/scss/_variables.scss","email.css","../../../../node_modules/bootstrap/scss/vendor/_rfs.scss"],"names":[],"mappings":"AAWA;EACI,aAAA;EACA,qBC+nB0B;ED5nB1B,gBC+nB0B;ED9nB1B,gBC+nB0B;AC3oB9B;;AFeA;EG+QQ,iCAAA;AD1RR;AC8HI;EHnHJ;IGsRQ,iBAAA;ED7RN;AACF;;AFWA;EG0QQ,iCAAA;ADjRR;ACqHI;EH9GJ;IGiRQ,eAAA;EDpRN;AACF;;AFOA;EGqQQ,+BAAA;ADxQR;AC4GI;EHzGJ;IG4QQ,kBAAA;ED3QN;AACF;;AFGA;EGgQQ,iCAAA;AD/PR;ACmGI;EHpGJ;IGuQQ,iBAAA;EDlQN;AACF;;AFDA;EGuPM,kBALI;AD7OV;;AFAA;EGkPM,eALI;ADzOV;;AFEA;EACI,aAAA;EACA,mBCqawB;ACpa5B;;AFEA;EACI,sBAAA;EACA,WAAA;EACA,sBAAA;EACA,qBAAA;EACA,kBAAA;EACA,iBAAA;AECJ;;AFEA;EACI;IACI,gBAAA;EECN;AACF;AFEA;EACI;IACI,gBAAA;EEAN;AACF;AFGA;EACI;IACI,gBAAA;EEDN;AACF;AFIA;EACI;IACI,iBAAA;EEFN;AACF;AFKA;EACI;IACI,iBAAA;EEHN;AACF","file":"email.css","sourcesContent":["// Bootstrap functions first to manipulate colors, SVGs, calc, etc\n@import \"node_modules/bootstrap/scss/functions\";\n// Remainder of the Bootstrap variables\n@import \"node_modules/bootstrap/scss/variables\";\n@import \"node_modules/bootstrap/scss/variables-dark\";\n\n// Remainder of required Bootstrap parts\n@import \"node_modules/bootstrap/scss/maps\";\n@import \"node_modules/bootstrap/scss/mixins\";\n\n// Email styling\n%heading {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n.container {\n box-sizing: border-box;\n width: 100%;\n padding-right: .75rem;\n padding-left: .75rem;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n@media (min-width: 1400px) {\n .container {\n max-width: 1320px;\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n// scss-docs-start gray-color-variables\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n// scss-docs-end gray-color-variables\n\n// fusv-disable\n// scss-docs-start gray-colors-map\n$grays: (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n) !default;\n// scss-docs-end gray-colors-map\n// fusv-enable\n\n// scss-docs-start color-variables\n$blue: #0d6efd !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #d63384 !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #198754 !default;\n$teal: #20c997 !default;\n$cyan: #0dcaf0 !default;\n// scss-docs-end color-variables\n\n// scss-docs-start colors-map\n$colors: (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"black\": $black,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n) !default;\n// scss-docs-end colors-map\n\n// The contrast ratio to reach against white, to determine if color changes from \"light\" to \"dark\". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.\n// See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast\n$min-contrast-ratio: 4.5 !default;\n\n// Customize the light and dark text colors for use in our color contrast function.\n$color-contrast-dark: $black !default;\n$color-contrast-light: $white !default;\n\n// fusv-disable\n$blue-100: tint-color($blue, 80%) !default;\n$blue-200: tint-color($blue, 60%) !default;\n$blue-300: tint-color($blue, 40%) !default;\n$blue-400: tint-color($blue, 20%) !default;\n$blue-500: $blue !default;\n$blue-600: shade-color($blue, 20%) !default;\n$blue-700: shade-color($blue, 40%) !default;\n$blue-800: shade-color($blue, 60%) !default;\n$blue-900: shade-color($blue, 80%) !default;\n\n$indigo-100: tint-color($indigo, 80%) !default;\n$indigo-200: tint-color($indigo, 60%) !default;\n$indigo-300: tint-color($indigo, 40%) !default;\n$indigo-400: tint-color($indigo, 20%) !default;\n$indigo-500: $indigo !default;\n$indigo-600: shade-color($indigo, 20%) !default;\n$indigo-700: shade-color($indigo, 40%) !default;\n$indigo-800: shade-color($indigo, 60%) !default;\n$indigo-900: shade-color($indigo, 80%) !default;\n\n$purple-100: tint-color($purple, 80%) !default;\n$purple-200: tint-color($purple, 60%) !default;\n$purple-300: tint-color($purple, 40%) !default;\n$purple-400: tint-color($purple, 20%) !default;\n$purple-500: $purple !default;\n$purple-600: shade-color($purple, 20%) !default;\n$purple-700: shade-color($purple, 40%) !default;\n$purple-800: shade-color($purple, 60%) !default;\n$purple-900: shade-color($purple, 80%) !default;\n\n$pink-100: tint-color($pink, 80%) !default;\n$pink-200: tint-color($pink, 60%) !default;\n$pink-300: tint-color($pink, 40%) !default;\n$pink-400: tint-color($pink, 20%) !default;\n$pink-500: $pink !default;\n$pink-600: shade-color($pink, 20%) !default;\n$pink-700: shade-color($pink, 40%) !default;\n$pink-800: shade-color($pink, 60%) !default;\n$pink-900: shade-color($pink, 80%) !default;\n\n$red-100: tint-color($red, 80%) !default;\n$red-200: tint-color($red, 60%) !default;\n$red-300: tint-color($red, 40%) !default;\n$red-400: tint-color($red, 20%) !default;\n$red-500: $red !default;\n$red-600: shade-color($red, 20%) !default;\n$red-700: shade-color($red, 40%) !default;\n$red-800: shade-color($red, 60%) !default;\n$red-900: shade-color($red, 80%) !default;\n\n$orange-100: tint-color($orange, 80%) !default;\n$orange-200: tint-color($orange, 60%) !default;\n$orange-300: tint-color($orange, 40%) !default;\n$orange-400: tint-color($orange, 20%) !default;\n$orange-500: $orange !default;\n$orange-600: shade-color($orange, 20%) !default;\n$orange-700: shade-color($orange, 40%) !default;\n$orange-800: shade-color($orange, 60%) !default;\n$orange-900: shade-color($orange, 80%) !default;\n\n$yellow-100: tint-color($yellow, 80%) !default;\n$yellow-200: tint-color($yellow, 60%) !default;\n$yellow-300: tint-color($yellow, 40%) !default;\n$yellow-400: tint-color($yellow, 20%) !default;\n$yellow-500: $yellow !default;\n$yellow-600: shade-color($yellow, 20%) !default;\n$yellow-700: shade-color($yellow, 40%) !default;\n$yellow-800: shade-color($yellow, 60%) !default;\n$yellow-900: shade-color($yellow, 80%) !default;\n\n$green-100: tint-color($green, 80%) !default;\n$green-200: tint-color($green, 60%) !default;\n$green-300: tint-color($green, 40%) !default;\n$green-400: tint-color($green, 20%) !default;\n$green-500: $green !default;\n$green-600: shade-color($green, 20%) !default;\n$green-700: shade-color($green, 40%) !default;\n$green-800: shade-color($green, 60%) !default;\n$green-900: shade-color($green, 80%) !default;\n\n$teal-100: tint-color($teal, 80%) !default;\n$teal-200: tint-color($teal, 60%) !default;\n$teal-300: tint-color($teal, 40%) !default;\n$teal-400: tint-color($teal, 20%) !default;\n$teal-500: $teal !default;\n$teal-600: shade-color($teal, 20%) !default;\n$teal-700: shade-color($teal, 40%) !default;\n$teal-800: shade-color($teal, 60%) !default;\n$teal-900: shade-color($teal, 80%) !default;\n\n$cyan-100: tint-color($cyan, 80%) !default;\n$cyan-200: tint-color($cyan, 60%) !default;\n$cyan-300: tint-color($cyan, 40%) !default;\n$cyan-400: tint-color($cyan, 20%) !default;\n$cyan-500: $cyan !default;\n$cyan-600: shade-color($cyan, 20%) !default;\n$cyan-700: shade-color($cyan, 40%) !default;\n$cyan-800: shade-color($cyan, 60%) !default;\n$cyan-900: shade-color($cyan, 80%) !default;\n\n$blues: (\n \"blue-100\": $blue-100,\n \"blue-200\": $blue-200,\n \"blue-300\": $blue-300,\n \"blue-400\": $blue-400,\n \"blue-500\": $blue-500,\n \"blue-600\": $blue-600,\n \"blue-700\": $blue-700,\n \"blue-800\": $blue-800,\n \"blue-900\": $blue-900\n) !default;\n\n$indigos: (\n \"indigo-100\": $indigo-100,\n \"indigo-200\": $indigo-200,\n \"indigo-300\": $indigo-300,\n \"indigo-400\": $indigo-400,\n \"indigo-500\": $indigo-500,\n \"indigo-600\": $indigo-600,\n \"indigo-700\": $indigo-700,\n \"indigo-800\": $indigo-800,\n \"indigo-900\": $indigo-900\n) !default;\n\n$purples: (\n \"purple-100\": $purple-100,\n \"purple-200\": $purple-200,\n \"purple-300\": $purple-300,\n \"purple-400\": $purple-400,\n \"purple-500\": $purple-500,\n \"purple-600\": $purple-600,\n \"purple-700\": $purple-700,\n \"purple-800\": $purple-800,\n \"purple-900\": $purple-900\n) !default;\n\n$pinks: (\n \"pink-100\": $pink-100,\n \"pink-200\": $pink-200,\n \"pink-300\": $pink-300,\n \"pink-400\": $pink-400,\n \"pink-500\": $pink-500,\n \"pink-600\": $pink-600,\n \"pink-700\": $pink-700,\n \"pink-800\": $pink-800,\n \"pink-900\": $pink-900\n) !default;\n\n$reds: (\n \"red-100\": $red-100,\n \"red-200\": $red-200,\n \"red-300\": $red-300,\n \"red-400\": $red-400,\n \"red-500\": $red-500,\n \"red-600\": $red-600,\n \"red-700\": $red-700,\n \"red-800\": $red-800,\n \"red-900\": $red-900\n) !default;\n\n$oranges: (\n \"orange-100\": $orange-100,\n \"orange-200\": $orange-200,\n \"orange-300\": $orange-300,\n \"orange-400\": $orange-400,\n \"orange-500\": $orange-500,\n \"orange-600\": $orange-600,\n \"orange-700\": $orange-700,\n \"orange-800\": $orange-800,\n \"orange-900\": $orange-900\n) !default;\n\n$yellows: (\n \"yellow-100\": $yellow-100,\n \"yellow-200\": $yellow-200,\n \"yellow-300\": $yellow-300,\n \"yellow-400\": $yellow-400,\n \"yellow-500\": $yellow-500,\n \"yellow-600\": $yellow-600,\n \"yellow-700\": $yellow-700,\n \"yellow-800\": $yellow-800,\n \"yellow-900\": $yellow-900\n) !default;\n\n$greens: (\n \"green-100\": $green-100,\n \"green-200\": $green-200,\n \"green-300\": $green-300,\n \"green-400\": $green-400,\n \"green-500\": $green-500,\n \"green-600\": $green-600,\n \"green-700\": $green-700,\n \"green-800\": $green-800,\n \"green-900\": $green-900\n) !default;\n\n$teals: (\n \"teal-100\": $teal-100,\n \"teal-200\": $teal-200,\n \"teal-300\": $teal-300,\n \"teal-400\": $teal-400,\n \"teal-500\": $teal-500,\n \"teal-600\": $teal-600,\n \"teal-700\": $teal-700,\n \"teal-800\": $teal-800,\n \"teal-900\": $teal-900\n) !default;\n\n$cyans: (\n \"cyan-100\": $cyan-100,\n \"cyan-200\": $cyan-200,\n \"cyan-300\": $cyan-300,\n \"cyan-400\": $cyan-400,\n \"cyan-500\": $cyan-500,\n \"cyan-600\": $cyan-600,\n \"cyan-700\": $cyan-700,\n \"cyan-800\": $cyan-800,\n \"cyan-900\": $cyan-900\n) !default;\n// fusv-enable\n\n// scss-docs-start theme-color-variables\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-900 !default;\n// scss-docs-end theme-color-variables\n\n// scss-docs-start theme-colors-map\n$theme-colors: (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n) !default;\n// scss-docs-end theme-colors-map\n\n// scss-docs-start theme-text-variables\n$primary-text-emphasis: shade-color($primary, 60%) !default;\n$secondary-text-emphasis: shade-color($secondary, 60%) !default;\n$success-text-emphasis: shade-color($success, 60%) !default;\n$info-text-emphasis: shade-color($info, 60%) !default;\n$warning-text-emphasis: shade-color($warning, 60%) !default;\n$danger-text-emphasis: shade-color($danger, 60%) !default;\n$light-text-emphasis: $gray-700 !default;\n$dark-text-emphasis: $gray-700 !default;\n// scss-docs-end theme-text-variables\n\n// scss-docs-start theme-bg-subtle-variables\n$primary-bg-subtle: tint-color($primary, 80%) !default;\n$secondary-bg-subtle: tint-color($secondary, 80%) !default;\n$success-bg-subtle: tint-color($success, 80%) !default;\n$info-bg-subtle: tint-color($info, 80%) !default;\n$warning-bg-subtle: tint-color($warning, 80%) !default;\n$danger-bg-subtle: tint-color($danger, 80%) !default;\n$light-bg-subtle: mix($gray-100, $white) !default;\n$dark-bg-subtle: $gray-400 !default;\n// scss-docs-end theme-bg-subtle-variables\n\n// scss-docs-start theme-border-subtle-variables\n$primary-border-subtle: tint-color($primary, 60%) !default;\n$secondary-border-subtle: tint-color($secondary, 60%) !default;\n$success-border-subtle: tint-color($success, 60%) !default;\n$info-border-subtle: tint-color($info, 60%) !default;\n$warning-border-subtle: tint-color($warning, 60%) !default;\n$danger-border-subtle: tint-color($danger, 60%) !default;\n$light-border-subtle: $gray-200 !default;\n$dark-border-subtle: $gray-500 !default;\n// scss-docs-end theme-border-subtle-variables\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\", \"%3c\"),\n (\">\", \"%3e\"),\n (\"#\", \"%23\"),\n (\"(\", \"%28\"),\n (\")\", \"%29\"),\n) !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-reduced-motion: true !default;\n$enable-smooth-scroll: true !default;\n$enable-grid-classes: true !default;\n$enable-container-classes: true !default;\n$enable-cssgrid: false !default;\n$enable-button-pointers: true !default;\n$enable-rfs: true !default;\n$enable-validation-icons: true !default;\n$enable-negative-margins: false !default;\n$enable-deprecation-messages: true !default;\n$enable-important-utilities: true !default;\n\n$enable-dark-mode: true !default;\n$color-mode-type: data !default; // `data` or `media-query`\n\n// Prefix for :root CSS variables\n\n$variable-prefix: bs- !default; // Deprecated in v5.2.0 for the shorter `$prefix`\n$prefix: $variable-prefix !default;\n\n// Gradient\n//\n// The gradient which is added to components if `$enable-gradients` is `true`\n// This gradient is also added to elements with `.bg-gradient`\n// scss-docs-start variable-gradient\n$gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)) !default;\n// scss-docs-end variable-gradient\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// scss-docs-start spacer-variables-maps\n$spacer: 1rem !default;\n$spacers: (\n 0: 0,\n 1: $spacer * .25,\n 2: $spacer * .5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3,\n) !default;\n// scss-docs-end spacer-variables-maps\n\n// Position\n//\n// Define the edge positioning anchors of the position utilities.\n\n// scss-docs-start position-map\n$position-values: (\n 0: 0,\n 50: 50%,\n 100: 100%\n) !default;\n// scss-docs-end position-map\n\n// Body\n//\n// Settings for the `` element.\n\n$body-text-align: null !default;\n$body-color: $gray-900 !default;\n$body-bg: $white !default;\n\n$body-secondary-color: rgba($body-color, .75) !default;\n$body-secondary-bg: $gray-200 !default;\n\n$body-tertiary-color: rgba($body-color, .5) !default;\n$body-tertiary-bg: $gray-100 !default;\n\n$body-emphasis-color: $black !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: $primary !default;\n$link-decoration: underline !default;\n$link-shade-percentage: 20% !default;\n$link-hover-color: shift-color($link-color, $link-shade-percentage) !default;\n$link-hover-decoration: null !default;\n\n$stretched-link-pseudo-element: after !default;\n$stretched-link-z-index: 1 !default;\n\n// Icon links\n// scss-docs-start icon-link-variables\n$icon-link-gap: .375rem !default;\n$icon-link-underline-offset: .25em !default;\n$icon-link-icon-size: 1em !default;\n$icon-link-icon-transition: .2s ease-in-out transform !default;\n$icon-link-icon-transform: translate3d(.25em, 0, 0) !default;\n// scss-docs-end icon-link-variables\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n// scss-docs-start grid-breakpoints\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px,\n xxl: 1400px\n) !default;\n// scss-docs-end grid-breakpoints\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n// scss-docs-start container-max-widths\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px,\n xxl: 1320px\n) !default;\n// scss-docs-end container-max-widths\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 1.5rem !default;\n$grid-row-columns: 6 !default;\n\n// Container padding\n\n$container-padding-x: $grid-gutter-width !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n// scss-docs-start border-variables\n$border-width: 1px !default;\n$border-widths: (\n 1: 1px,\n 2: 2px,\n 3: 3px,\n 4: 4px,\n 5: 5px\n) !default;\n$border-style: solid !default;\n$border-color: $gray-300 !default;\n$border-color-translucent: rgba($black, .175) !default;\n// scss-docs-end border-variables\n\n// scss-docs-start border-radius-variables\n$border-radius: .375rem !default;\n$border-radius-sm: .25rem !default;\n$border-radius-lg: .5rem !default;\n$border-radius-xl: 1rem !default;\n$border-radius-xxl: 2rem !default;\n$border-radius-pill: 50rem !default;\n// scss-docs-end border-radius-variables\n// fusv-disable\n$border-radius-2xl: $border-radius-xxl !default; // Deprecated in v5.3.0\n// fusv-enable\n\n// scss-docs-start box-shadow-variables\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default;\n// scss-docs-end box-shadow-variables\n\n$component-active-color: $white !default;\n$component-active-bg: $primary !default;\n\n// scss-docs-start focus-ring-variables\n$focus-ring-width: .25rem !default;\n$focus-ring-opacity: .25 !default;\n$focus-ring-color: rgba($primary, $focus-ring-opacity) !default;\n$focus-ring-blur: 0 !default;\n$focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color !default;\n// scss-docs-end focus-ring-variables\n\n// scss-docs-start caret-variables\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n// scss-docs-end caret-variables\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n// scss-docs-start collapse-transition\n$transition-collapse: height .35s ease !default;\n$transition-collapse-width: width .35s ease !default;\n// scss-docs-end collapse-transition\n\n// stylelint-disable function-disallowed-list\n// scss-docs-start aspect-ratios\n$aspect-ratios: (\n \"1x1\": 100%,\n \"4x3\": calc(3 / 4 * 100%),\n \"16x9\": calc(9 / 16 * 100%),\n \"21x9\": calc(9 / 21 * 100%)\n) !default;\n// scss-docs-end aspect-ratios\n// stylelint-enable function-disallowed-list\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// scss-docs-start font-variables\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n// stylelint-enable value-keyword-case\n$font-family-base: var(--#{$prefix}font-sans-serif) !default;\n$font-family-code: var(--#{$prefix}font-monospace) !default;\n\n// $font-size-root affects the value of `rem`, which is used for as well font sizes, paddings, and margins\n// $font-size-base affects the font size of the body text\n$font-size-root: null !default;\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-sm: $font-size-base * .875 !default;\n$font-size-lg: $font-size-base * 1.25 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-medium: 500 !default;\n$font-weight-semibold: 600 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n\n$line-height-base: 1.5 !default;\n$line-height-sm: 1.25 !default;\n$line-height-lg: 2 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n// scss-docs-end font-variables\n\n// scss-docs-start font-sizes\n$font-sizes: (\n 1: $h1-font-size,\n 2: $h2-font-size,\n 3: $h3-font-size,\n 4: $h4-font-size,\n 5: $h5-font-size,\n 6: $h6-font-size\n) !default;\n// scss-docs-end font-sizes\n\n// scss-docs-start headings-variables\n$headings-margin-bottom: $spacer * .5 !default;\n$headings-font-family: null !default;\n$headings-font-style: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n// scss-docs-end headings-variables\n\n// scss-docs-start display-headings\n$display-font-sizes: (\n 1: 5rem,\n 2: 4.5rem,\n 3: 4rem,\n 4: 3.5rem,\n 5: 3rem,\n 6: 2.5rem\n) !default;\n\n$display-font-family: null !default;\n$display-font-style: null !default;\n$display-font-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n// scss-docs-end display-headings\n\n// scss-docs-start type-variables\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: .875em !default;\n\n$sub-sup-font-size: .75em !default;\n\n// fusv-disable\n$text-muted: var(--#{$prefix}secondary-color) !default; // Deprecated in 5.3.0\n// fusv-enable\n\n$initialism-font-size: $small-font-size !default;\n\n$blockquote-margin-y: $spacer !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n$blockquote-footer-color: $gray-600 !default;\n$blockquote-footer-font-size: $small-font-size !default;\n\n$hr-margin-y: $spacer !default;\n$hr-color: inherit !default;\n\n// fusv-disable\n$hr-bg-color: null !default; // Deprecated in v5.2.0\n$hr-height: null !default; // Deprecated in v5.2.0\n// fusv-enable\n\n$hr-border-color: null !default; // Allows for inherited colors\n$hr-border-width: var(--#{$prefix}border-width) !default;\n$hr-opacity: .25 !default;\n\n// scss-docs-start vr-variables\n$vr-border-width: var(--#{$prefix}border-width) !default;\n// scss-docs-end vr-variables\n\n$legend-margin-bottom: .5rem !default;\n$legend-font-size: 1.5rem !default;\n$legend-font-weight: null !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-padding: .1875em !default;\n$mark-color: $body-color !default;\n$mark-bg: $yellow-100 !default;\n// scss-docs-end type-variables\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n// scss-docs-start table-variables\n$table-cell-padding-y: .5rem !default;\n$table-cell-padding-x: .5rem !default;\n$table-cell-padding-y-sm: .25rem !default;\n$table-cell-padding-x-sm: .25rem !default;\n\n$table-cell-vertical-align: top !default;\n\n$table-color: var(--#{$prefix}emphasis-color) !default;\n$table-bg: var(--#{$prefix}body-bg) !default;\n$table-accent-bg: transparent !default;\n\n$table-th-font-weight: null !default;\n\n$table-striped-color: $table-color !default;\n$table-striped-bg-factor: .05 !default;\n$table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-striped-bg-factor) !default;\n\n$table-active-color: $table-color !default;\n$table-active-bg-factor: .1 !default;\n$table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-active-bg-factor) !default;\n\n$table-hover-color: $table-color !default;\n$table-hover-bg-factor: .075 !default;\n$table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-hover-bg-factor) !default;\n\n$table-border-factor: .2 !default;\n$table-border-width: var(--#{$prefix}border-width) !default;\n$table-border-color: var(--#{$prefix}border-color) !default;\n\n$table-striped-order: odd !default;\n$table-striped-columns-order: even !default;\n\n$table-group-separator-color: currentcolor !default;\n\n$table-caption-color: var(--#{$prefix}secondary-color) !default;\n\n$table-bg-scale: -80% !default;\n// scss-docs-end table-variables\n\n// scss-docs-start table-loop\n$table-variants: (\n \"primary\": shift-color($primary, $table-bg-scale),\n \"secondary\": shift-color($secondary, $table-bg-scale),\n \"success\": shift-color($success, $table-bg-scale),\n \"info\": shift-color($info, $table-bg-scale),\n \"warning\": shift-color($warning, $table-bg-scale),\n \"danger\": shift-color($danger, $table-bg-scale),\n \"light\": $light,\n \"dark\": $dark,\n) !default;\n// scss-docs-end table-loop\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n// scss-docs-start input-btn-variables\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: $focus-ring-width !default;\n$input-btn-focus-color-opacity: $focus-ring-opacity !default;\n$input-btn-focus-color: $focus-ring-color !default;\n$input-btn-focus-blur: $focus-ring-blur !default;\n$input-btn-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n\n$input-btn-border-width: var(--#{$prefix}border-width) !default;\n// scss-docs-end input-btn-variables\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n// scss-docs-start btn-variables\n$btn-color: var(--#{$prefix}body-color) !default;\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-color: var(--#{$prefix}link-color) !default;\n$btn-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$btn-link-disabled-color: $gray-600 !default;\n$btn-link-focus-shadow-rgb: to-rgb(mix(color-contrast($link-color), $link-color, 15%)) !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: var(--#{$prefix}border-radius) !default;\n$btn-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$btn-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$btn-hover-bg-shade-amount: 15% !default;\n$btn-hover-bg-tint-amount: 15% !default;\n$btn-hover-border-shade-amount: 20% !default;\n$btn-hover-border-tint-amount: 10% !default;\n$btn-active-bg-shade-amount: 20% !default;\n$btn-active-bg-tint-amount: 20% !default;\n$btn-active-border-shade-amount: 25% !default;\n$btn-active-border-tint-amount: 10% !default;\n// scss-docs-end btn-variables\n\n\n// Forms\n\n// scss-docs-start form-text-variables\n$form-text-margin-top: .25rem !default;\n$form-text-font-size: $small-font-size !default;\n$form-text-font-style: null !default;\n$form-text-font-weight: null !default;\n$form-text-color: var(--#{$prefix}secondary-color) !default;\n// scss-docs-end form-text-variables\n\n// scss-docs-start form-label-variables\n$form-label-margin-bottom: .5rem !default;\n$form-label-font-size: null !default;\n$form-label-font-style: null !default;\n$form-label-font-weight: null !default;\n$form-label-color: null !default;\n// scss-docs-end form-label-variables\n\n// scss-docs-start form-input-variables\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n\n$input-bg: var(--#{$prefix}body-bg) !default;\n$input-disabled-color: null !default;\n$input-disabled-bg: var(--#{$prefix}secondary-bg) !default;\n$input-disabled-border-color: null !default;\n\n$input-color: var(--#{$prefix}body-color) !default;\n$input-border-color: var(--#{$prefix}border-color) !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$input-border-radius: var(--#{$prefix}border-radius) !default;\n$input-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$input-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: tint-color($component-active-bg, 50%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: var(--#{$prefix}secondary-color) !default;\n$input-plaintext-color: var(--#{$prefix}body-color) !default;\n\n$input-height-border: calc(#{$input-border-width} * 2) !default; // stylelint-disable-line function-disallowed-list\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-color-width: 3rem !default;\n// scss-docs-end form-input-variables\n\n// scss-docs-start form-check-variables\n$form-check-input-width: 1em !default;\n$form-check-min-height: $font-size-base * $line-height-base !default;\n$form-check-padding-start: $form-check-input-width + .5em !default;\n$form-check-margin-bottom: .125rem !default;\n$form-check-label-color: null !default;\n$form-check-label-cursor: null !default;\n$form-check-transition: null !default;\n\n$form-check-input-active-filter: brightness(90%) !default;\n\n$form-check-input-bg: $input-bg !default;\n$form-check-input-border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color) !default;\n$form-check-input-border-radius: .25em !default;\n$form-check-radio-border-radius: 50% !default;\n$form-check-input-focus-border: $input-focus-border-color !default;\n$form-check-input-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$form-check-input-checked-color: $component-active-color !default;\n$form-check-input-checked-bg-color: $component-active-bg !default;\n$form-check-input-checked-border-color: $form-check-input-checked-bg-color !default;\n$form-check-input-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-check-radio-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-indeterminate-color: $component-active-color !default;\n$form-check-input-indeterminate-bg-color: $component-active-bg !default;\n$form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color !default;\n$form-check-input-indeterminate-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-check-input-disabled-opacity: .5 !default;\n$form-check-label-disabled-opacity: $form-check-input-disabled-opacity !default;\n$form-check-btn-check-disabled-opacity: $btn-disabled-opacity !default;\n\n$form-check-inline-margin-end: 1rem !default;\n// scss-docs-end form-check-variables\n\n// scss-docs-start form-switch-variables\n$form-switch-color: rgba($black, .25) !default;\n$form-switch-width: 2em !default;\n$form-switch-padding-start: $form-switch-width + .5em !default;\n$form-switch-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-border-radius: $form-switch-width !default;\n$form-switch-transition: background-position .15s ease-in-out !default;\n\n$form-switch-focus-color: $input-focus-border-color !default;\n$form-switch-focus-bg-image: url(\"data:image/svg+xml,\") !default;\n\n$form-switch-checked-color: $component-active-color !default;\n$form-switch-checked-bg-image: url(\"data:image/svg+xml,\") !default;\n$form-switch-checked-bg-position: right center !default;\n// scss-docs-end form-switch-variables\n\n// scss-docs-start input-group-variables\n$input-group-addon-padding-y: $input-padding-y !default;\n$input-group-addon-padding-x: $input-padding-x !default;\n$input-group-addon-font-weight: $input-font-weight !default;\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: var(--#{$prefix}tertiary-bg) !default;\n$input-group-addon-border-color: $input-border-color !default;\n// scss-docs-end input-group-variables\n\n// scss-docs-start form-select-variables\n$form-select-padding-y: $input-padding-y !default;\n$form-select-padding-x: $input-padding-x !default;\n$form-select-font-family: $input-font-family !default;\n$form-select-font-size: $input-font-size !default;\n$form-select-indicator-padding: $form-select-padding-x * 3 !default; // Extra padding for background-image\n$form-select-font-weight: $input-font-weight !default;\n$form-select-line-height: $input-line-height !default;\n$form-select-color: $input-color !default;\n$form-select-bg: $input-bg !default;\n$form-select-disabled-color: null !default;\n$form-select-disabled-bg: $input-disabled-bg !default;\n$form-select-disabled-border-color: $input-disabled-border-color !default;\n$form-select-bg-position: right $form-select-padding-x center !default;\n$form-select-bg-size: 16px 12px !default; // In pixels because image dimensions\n$form-select-indicator-color: $gray-800 !default;\n$form-select-indicator: url(\"data:image/svg+xml,\") !default;\n\n$form-select-feedback-icon-padding-end: $form-select-padding-x * 2.5 + $form-select-indicator-padding !default;\n$form-select-feedback-icon-position: center right $form-select-indicator-padding !default;\n$form-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$form-select-border-width: $input-border-width !default;\n$form-select-border-color: $input-border-color !default;\n$form-select-border-radius: $input-border-radius !default;\n$form-select-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$form-select-focus-border-color: $input-focus-border-color !default;\n$form-select-focus-width: $input-focus-width !default;\n$form-select-focus-box-shadow: 0 0 0 $form-select-focus-width $input-btn-focus-color !default;\n\n$form-select-padding-y-sm: $input-padding-y-sm !default;\n$form-select-padding-x-sm: $input-padding-x-sm !default;\n$form-select-font-size-sm: $input-font-size-sm !default;\n$form-select-border-radius-sm: $input-border-radius-sm !default;\n\n$form-select-padding-y-lg: $input-padding-y-lg !default;\n$form-select-padding-x-lg: $input-padding-x-lg !default;\n$form-select-font-size-lg: $input-font-size-lg !default;\n$form-select-border-radius-lg: $input-border-radius-lg !default;\n\n$form-select-transition: $input-transition !default;\n// scss-docs-end form-select-variables\n\n// scss-docs-start form-range-variables\n$form-range-track-width: 100% !default;\n$form-range-track-height: .5rem !default;\n$form-range-track-cursor: pointer !default;\n$form-range-track-bg: var(--#{$prefix}secondary-bg) !default;\n$form-range-track-border-radius: 1rem !default;\n$form-range-track-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n\n$form-range-thumb-width: 1rem !default;\n$form-range-thumb-height: $form-range-thumb-width !default;\n$form-range-thumb-bg: $component-active-bg !default;\n$form-range-thumb-border: 0 !default;\n$form-range-thumb-border-radius: 1rem !default;\n$form-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$form-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in Edge\n$form-range-thumb-active-bg: tint-color($component-active-bg, 70%) !default;\n$form-range-thumb-disabled-bg: var(--#{$prefix}secondary-color) !default;\n$form-range-thumb-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n// scss-docs-end form-range-variables\n\n// scss-docs-start form-file-variables\n$form-file-button-color: $input-color !default;\n$form-file-button-bg: var(--#{$prefix}tertiary-bg) !default;\n$form-file-button-hover-bg: var(--#{$prefix}secondary-bg) !default;\n// scss-docs-end form-file-variables\n\n// scss-docs-start form-floating-variables\n$form-floating-height: add(3.5rem, $input-height-border) !default;\n$form-floating-line-height: 1.25 !default;\n$form-floating-padding-x: $input-padding-x !default;\n$form-floating-padding-y: 1rem !default;\n$form-floating-input-padding-t: 1.625rem !default;\n$form-floating-input-padding-b: .625rem !default;\n$form-floating-label-height: 1.5em !default;\n$form-floating-label-opacity: .65 !default;\n$form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default;\n$form-floating-label-disabled-color: $gray-600 !default;\n$form-floating-transition: opacity .1s ease-in-out, transform .1s ease-in-out !default;\n// scss-docs-end form-floating-variables\n\n// Form validation\n\n// scss-docs-start form-feedback-variables\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $form-text-font-size !default;\n$form-feedback-font-style: $form-text-font-style !default;\n$form-feedback-valid-color: $success !default;\n$form-feedback-invalid-color: $danger !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end form-feedback-variables\n\n// scss-docs-start form-validation-colors\n$form-valid-color: $form-feedback-valid-color !default;\n$form-valid-border-color: $form-feedback-valid-color !default;\n$form-invalid-color: $form-feedback-invalid-color !default;\n$form-invalid-border-color: $form-feedback-invalid-color !default;\n// scss-docs-end form-validation-colors\n\n// scss-docs-start form-validation-states\n$form-validation-states: (\n \"valid\": (\n \"color\": var(--#{$prefix}form-valid-color),\n \"icon\": $form-feedback-icon-valid,\n \"tooltip-color\": #fff,\n \"tooltip-bg-color\": var(--#{$prefix}success),\n \"focus-box-shadow\": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}success-rgb), $input-btn-focus-color-opacity),\n \"border-color\": var(--#{$prefix}form-valid-border-color),\n ),\n \"invalid\": (\n \"color\": var(--#{$prefix}form-invalid-color),\n \"icon\": $form-feedback-icon-invalid,\n \"tooltip-color\": #fff,\n \"tooltip-bg-color\": var(--#{$prefix}danger),\n \"focus-box-shadow\": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}danger-rgb), $input-btn-focus-color-opacity),\n \"border-color\": var(--#{$prefix}form-invalid-border-color),\n )\n) !default;\n// scss-docs-end form-validation-states\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n// scss-docs-start zindex-stack\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-offcanvas-backdrop: 1040 !default;\n$zindex-offcanvas: 1045 !default;\n$zindex-modal-backdrop: 1050 !default;\n$zindex-modal: 1055 !default;\n$zindex-popover: 1070 !default;\n$zindex-tooltip: 1080 !default;\n$zindex-toast: 1090 !default;\n// scss-docs-end zindex-stack\n\n// scss-docs-start zindex-levels-map\n$zindex-levels: (\n n1: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3\n) !default;\n// scss-docs-end zindex-levels-map\n\n\n// Navs\n\n// scss-docs-start nav-variables\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-font-size: null !default;\n$nav-link-font-weight: null !default;\n$nav-link-color: var(--#{$prefix}link-color) !default;\n$nav-link-hover-color: var(--#{$prefix}link-hover-color) !default;\n$nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default;\n$nav-link-disabled-color: var(--#{$prefix}secondary-color) !default;\n$nav-link-focus-box-shadow: $focus-ring-box-shadow !default;\n\n$nav-tabs-border-color: var(--#{$prefix}border-color) !default;\n$nav-tabs-border-width: var(--#{$prefix}border-width) !default;\n$nav-tabs-border-radius: var(--#{$prefix}border-radius) !default;\n$nav-tabs-link-hover-border-color: var(--#{$prefix}secondary-bg) var(--#{$prefix}secondary-bg) $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: var(--#{$prefix}emphasis-color) !default;\n$nav-tabs-link-active-bg: var(--#{$prefix}body-bg) !default;\n$nav-tabs-link-active-border-color: var(--#{$prefix}border-color) var(--#{$prefix}border-color) $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: var(--#{$prefix}border-radius) !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-underline-gap: 1rem !default;\n$nav-underline-border-width: .125rem !default;\n$nav-underline-link-active-color: var(--#{$prefix}emphasis-color) !default;\n// scss-docs-end nav-variables\n\n\n// Navbar\n\n// scss-docs-start navbar-variables\n$navbar-padding-y: $spacer * .5 !default;\n$navbar-padding-x: null !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;\n$navbar-brand-margin-end: 1rem !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n$navbar-toggler-focus-width: $btn-focus-width !default;\n$navbar-toggler-transition: box-shadow .15s ease-in-out !default;\n\n$navbar-light-color: rgba(var(--#{$prefix}emphasis-color-rgb), .65) !default;\n$navbar-light-hover-color: rgba(var(--#{$prefix}emphasis-color-rgb), .8) !default;\n$navbar-light-active-color: rgba(var(--#{$prefix}emphasis-color-rgb), 1) !default;\n$navbar-light-disabled-color: rgba(var(--#{$prefix}emphasis-color-rgb), .3) !default;\n$navbar-light-icon-color: rgba($body-color, .75) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba(var(--#{$prefix}emphasis-color-rgb), .15) !default;\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n// scss-docs-end navbar-variables\n\n// scss-docs-start navbar-dark-variables\n$navbar-dark-color: rgba($white, .55) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-icon-color: $navbar-dark-color !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n// scss-docs-end navbar-dark-variables\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n// scss-docs-start dropdown-variables\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-x: 0 !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: var(--#{$prefix}body-color) !default;\n$dropdown-bg: var(--#{$prefix}body-bg) !default;\n$dropdown-border-color: var(--#{$prefix}border-color-translucent) !default;\n$dropdown-border-radius: var(--#{$prefix}border-radius) !default;\n$dropdown-border-width: var(--#{$prefix}border-width) !default;\n$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default; // stylelint-disable-line function-disallowed-list\n$dropdown-divider-bg: $dropdown-border-color !default;\n$dropdown-divider-margin-y: $spacer * .5 !default;\n$dropdown-box-shadow: var(--#{$prefix}box-shadow) !default;\n\n$dropdown-link-color: var(--#{$prefix}body-color) !default;\n$dropdown-link-hover-color: $dropdown-link-color !default;\n$dropdown-link-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: var(--#{$prefix}tertiary-color) !default;\n\n$dropdown-item-padding-y: $spacer * .25 !default;\n$dropdown-item-padding-x: $spacer !default;\n\n$dropdown-header-color: $gray-600 !default;\n$dropdown-header-padding-x: $dropdown-item-padding-x !default;\n$dropdown-header-padding-y: $dropdown-padding-y !default;\n// fusv-disable\n$dropdown-header-padding: $dropdown-header-padding-y $dropdown-header-padding-x !default; // Deprecated in v5.2.0\n// fusv-enable\n// scss-docs-end dropdown-variables\n\n// scss-docs-start dropdown-dark-variables\n$dropdown-dark-color: $gray-300 !default;\n$dropdown-dark-bg: $gray-800 !default;\n$dropdown-dark-border-color: $dropdown-border-color !default;\n$dropdown-dark-divider-bg: $dropdown-divider-bg !default;\n$dropdown-dark-box-shadow: null !default;\n$dropdown-dark-link-color: $dropdown-dark-color !default;\n$dropdown-dark-link-hover-color: $white !default;\n$dropdown-dark-link-hover-bg: rgba($white, .15) !default;\n$dropdown-dark-link-active-color: $dropdown-link-active-color !default;\n$dropdown-dark-link-active-bg: $dropdown-link-active-bg !default;\n$dropdown-dark-link-disabled-color: $gray-500 !default;\n$dropdown-dark-header-color: $gray-500 !default;\n// scss-docs-end dropdown-dark-variables\n\n\n// Pagination\n\n// scss-docs-start pagination-variables\n$pagination-padding-y: .375rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n\n$pagination-font-size: $font-size-base !default;\n\n$pagination-color: var(--#{$prefix}link-color) !default;\n$pagination-bg: var(--#{$prefix}body-bg) !default;\n$pagination-border-radius: var(--#{$prefix}border-radius) !default;\n$pagination-border-width: var(--#{$prefix}border-width) !default;\n$pagination-margin-start: calc(#{$pagination-border-width} * -1) !default; // stylelint-disable-line function-disallowed-list\n$pagination-border-color: var(--#{$prefix}border-color) !default;\n\n$pagination-focus-color: var(--#{$prefix}link-hover-color) !default;\n$pagination-focus-bg: var(--#{$prefix}secondary-bg) !default;\n$pagination-focus-box-shadow: $focus-ring-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: var(--#{$prefix}link-hover-color) !default;\n$pagination-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n$pagination-hover-border-color: var(--#{$prefix}border-color) !default; // Todo in v6: remove this?\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $component-active-bg !default;\n\n$pagination-disabled-color: var(--#{$prefix}secondary-color) !default;\n$pagination-disabled-bg: var(--#{$prefix}secondary-bg) !default;\n$pagination-disabled-border-color: var(--#{$prefix}border-color) !default;\n\n$pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$pagination-border-radius-sm: var(--#{$prefix}border-radius-sm) !default;\n$pagination-border-radius-lg: var(--#{$prefix}border-radius-lg) !default;\n// scss-docs-end pagination-variables\n\n\n// Placeholders\n\n// scss-docs-start placeholders\n$placeholder-opacity-max: .5 !default;\n$placeholder-opacity-min: .2 !default;\n// scss-docs-end placeholders\n\n// Cards\n\n// scss-docs-start card-variables\n$card-spacer-y: $spacer !default;\n$card-spacer-x: $spacer !default;\n$card-title-spacer-y: $spacer * .5 !default;\n$card-title-color: null !default;\n$card-subtitle-color: null !default;\n$card-border-width: var(--#{$prefix}border-width) !default;\n$card-border-color: var(--#{$prefix}border-color-translucent) !default;\n$card-border-radius: var(--#{$prefix}border-radius) !default;\n$card-box-shadow: null !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-padding-y: $card-spacer-y * .5 !default;\n$card-cap-padding-x: $card-spacer-x !default;\n$card-cap-bg: rgba(var(--#{$prefix}body-color-rgb), .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: var(--#{$prefix}body-bg) !default;\n$card-img-overlay-padding: $spacer !default;\n$card-group-margin: $grid-gutter-width * .5 !default;\n// scss-docs-end card-variables\n\n// Accordion\n\n// scss-docs-start accordion-variables\n$accordion-padding-y: 1rem !default;\n$accordion-padding-x: 1.25rem !default;\n$accordion-color: var(--#{$prefix}body-color) !default;\n$accordion-bg: var(--#{$prefix}body-bg) !default;\n$accordion-border-width: var(--#{$prefix}border-width) !default;\n$accordion-border-color: var(--#{$prefix}border-color) !default;\n$accordion-border-radius: var(--#{$prefix}border-radius) !default;\n$accordion-inner-border-radius: subtract($accordion-border-radius, $accordion-border-width) !default;\n\n$accordion-body-padding-y: $accordion-padding-y !default;\n$accordion-body-padding-x: $accordion-padding-x !default;\n\n$accordion-button-padding-y: $accordion-padding-y !default;\n$accordion-button-padding-x: $accordion-padding-x !default;\n$accordion-button-color: var(--#{$prefix}body-color) !default;\n$accordion-button-bg: var(--#{$prefix}accordion-bg) !default;\n$accordion-transition: $btn-transition, border-radius .15s ease !default;\n$accordion-button-active-bg: var(--#{$prefix}primary-bg-subtle) !default;\n$accordion-button-active-color: var(--#{$prefix}primary-text-emphasis) !default;\n\n$accordion-button-focus-border-color: $input-focus-border-color !default;\n$accordion-button-focus-box-shadow: $btn-focus-box-shadow !default;\n\n$accordion-icon-width: 1.25rem !default;\n$accordion-icon-color: $body-color !default;\n$accordion-icon-active-color: $primary-text-emphasis !default;\n$accordion-icon-transition: transform .2s ease-in-out !default;\n$accordion-icon-transform: rotate(-180deg) !default;\n\n$accordion-button-icon: url(\"data:image/svg+xml,\") !default;\n$accordion-button-active-icon: url(\"data:image/svg+xml,\") !default;\n// scss-docs-end accordion-variables\n\n// Tooltips\n\n// scss-docs-start tooltip-variables\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: var(--#{$prefix}body-bg) !default;\n$tooltip-bg: var(--#{$prefix}emphasis-color) !default;\n$tooltip-border-radius: var(--#{$prefix}border-radius) !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: $spacer * .25 !default;\n$tooltip-padding-x: $spacer * .5 !default;\n$tooltip-margin: null !default; // TODO: remove this in v6\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n// fusv-disable\n$tooltip-arrow-color: null !default; // Deprecated in Bootstrap 5.2.0 for CSS variables\n// fusv-enable\n// scss-docs-end tooltip-variables\n\n// Form tooltips must come after regular tooltips\n// scss-docs-start tooltip-feedback-variables\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: null !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n// scss-docs-end tooltip-feedback-variables\n\n\n// Popovers\n\n// scss-docs-start popover-variables\n$popover-font-size: $font-size-sm !default;\n$popover-bg: var(--#{$prefix}body-bg) !default;\n$popover-max-width: 276px !default;\n$popover-border-width: var(--#{$prefix}border-width) !default;\n$popover-border-color: var(--#{$prefix}border-color-translucent) !default;\n$popover-border-radius: var(--#{$prefix}border-radius-lg) !default;\n$popover-inner-border-radius: calc(#{$popover-border-radius} - #{$popover-border-width}) !default; // stylelint-disable-line function-disallowed-list\n$popover-box-shadow: var(--#{$prefix}box-shadow) !default;\n\n$popover-header-font-size: $font-size-base !default;\n$popover-header-bg: var(--#{$prefix}secondary-bg) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: $spacer !default;\n\n$popover-body-color: var(--#{$prefix}body-color) !default;\n$popover-body-padding-y: $spacer !default;\n$popover-body-padding-x: $spacer !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n// scss-docs-end popover-variables\n\n// fusv-disable\n// Deprecated in Bootstrap 5.2.0 for CSS variables\n$popover-arrow-color: $popover-bg !default;\n$popover-arrow-outer-color: var(--#{$prefix}border-color-translucent) !default;\n// fusv-enable\n\n\n// Toasts\n\n// scss-docs-start toast-variables\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .5rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba(var(--#{$prefix}body-bg-rgb), .85) !default;\n$toast-border-width: var(--#{$prefix}border-width) !default;\n$toast-border-color: var(--#{$prefix}border-color-translucent) !default;\n$toast-border-radius: var(--#{$prefix}border-radius) !default;\n$toast-box-shadow: var(--#{$prefix}box-shadow) !default;\n$toast-spacing: $container-padding-x !default;\n\n$toast-header-color: var(--#{$prefix}secondary-color) !default;\n$toast-header-background-color: rgba(var(--#{$prefix}body-bg-rgb), .85) !default;\n$toast-header-border-color: $toast-border-color !default;\n// scss-docs-end toast-variables\n\n\n// Badges\n\n// scss-docs-start badge-variables\n$badge-font-size: .75em !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-color: $white !default;\n$badge-padding-y: .35em !default;\n$badge-padding-x: .65em !default;\n$badge-border-radius: var(--#{$prefix}border-radius) !default;\n// scss-docs-end badge-variables\n\n\n// Modals\n\n// scss-docs-start modal-variables\n$modal-inner-padding: $spacer !default;\n\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: var(--#{$prefix}body-bg) !default;\n$modal-content-border-color: var(--#{$prefix}border-color-translucent) !default;\n$modal-content-border-width: var(--#{$prefix}border-width) !default;\n$modal-content-border-radius: var(--#{$prefix}border-radius-lg) !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: var(--#{$prefix}box-shadow-sm) !default;\n$modal-content-box-shadow-sm-up: var(--#{$prefix}box-shadow) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n\n$modal-header-border-color: var(--#{$prefix}border-color) !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-header-padding-y: $modal-inner-padding !default;\n$modal-header-padding-x: $modal-inner-padding !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-footer-bg: null !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n\n$modal-sm: 300px !default;\n$modal-md: 500px !default;\n$modal-lg: 800px !default;\n$modal-xl: 1140px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n// scss-docs-end modal-variables\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n// scss-docs-start alert-variables\n$alert-padding-y: $spacer !default;\n$alert-padding-x: $spacer !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: var(--#{$prefix}border-radius) !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: var(--#{$prefix}border-width) !default;\n$alert-dismissible-padding-r: $alert-padding-x * 3 !default; // 3x covers width of x plus default padding on either side\n// scss-docs-end alert-variables\n\n// fusv-disable\n$alert-bg-scale: -80% !default; // Deprecated in v5.2.0, to be removed in v6\n$alert-border-scale: -70% !default; // Deprecated in v5.2.0, to be removed in v6\n$alert-color-scale: 40% !default; // Deprecated in v5.2.0, to be removed in v6\n// fusv-enable\n\n// Progress bars\n\n// scss-docs-start progress-variables\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: var(--#{$prefix}secondary-bg) !default;\n$progress-border-radius: var(--#{$prefix}border-radius) !default;\n$progress-box-shadow: var(--#{$prefix}box-shadow-inset) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: $primary !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n// scss-docs-end progress-variables\n\n\n// List group\n\n// scss-docs-start list-group-variables\n$list-group-color: var(--#{$prefix}body-color) !default;\n$list-group-bg: var(--#{$prefix}body-bg) !default;\n$list-group-border-color: var(--#{$prefix}border-color) !default;\n$list-group-border-width: var(--#{$prefix}border-width) !default;\n$list-group-border-radius: var(--#{$prefix}border-radius) !default;\n\n$list-group-item-padding-y: $spacer * .5 !default;\n$list-group-item-padding-x: $spacer !default;\n// fusv-disable\n$list-group-item-bg-scale: -80% !default; // Deprecated in v5.3.0\n$list-group-item-color-scale: 40% !default; // Deprecated in v5.3.0\n// fusv-enable\n\n$list-group-hover-bg: var(--#{$prefix}tertiary-bg) !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: var(--#{$prefix}secondary-color) !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: var(--#{$prefix}secondary-color) !default;\n$list-group-action-hover-color: var(--#{$prefix}emphasis-color) !default;\n\n$list-group-action-active-color: var(--#{$prefix}body-color) !default;\n$list-group-action-active-bg: var(--#{$prefix}secondary-bg) !default;\n// scss-docs-end list-group-variables\n\n\n// Image thumbnails\n\n// scss-docs-start thumbnail-variables\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: var(--#{$prefix}body-bg) !default;\n$thumbnail-border-width: var(--#{$prefix}border-width) !default;\n$thumbnail-border-color: var(--#{$prefix}border-color) !default;\n$thumbnail-border-radius: var(--#{$prefix}border-radius) !default;\n$thumbnail-box-shadow: var(--#{$prefix}box-shadow-sm) !default;\n// scss-docs-end thumbnail-variables\n\n\n// Figures\n\n// scss-docs-start figure-variables\n$figure-caption-font-size: $small-font-size !default;\n$figure-caption-color: var(--#{$prefix}secondary-color) !default;\n// scss-docs-end figure-variables\n\n\n// Breadcrumbs\n\n// scss-docs-start breadcrumb-variables\n$breadcrumb-font-size: null !default;\n$breadcrumb-padding-y: 0 !default;\n$breadcrumb-padding-x: 0 !default;\n$breadcrumb-item-padding-x: .5rem !default;\n$breadcrumb-margin-bottom: 1rem !default;\n$breadcrumb-bg: null !default;\n$breadcrumb-divider-color: var(--#{$prefix}secondary-color) !default;\n$breadcrumb-active-color: var(--#{$prefix}secondary-color) !default;\n$breadcrumb-divider: quote(\"/\") !default;\n$breadcrumb-divider-flipped: $breadcrumb-divider !default;\n$breadcrumb-border-radius: null !default;\n// scss-docs-end breadcrumb-variables\n\n// Carousel\n\n// scss-docs-start carousel-variables\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-opacity: .5 !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-active-opacity: 1 !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n$carousel-caption-padding-y: 1.25rem !default;\n$carousel-caption-spacer: 1.25rem !default;\n\n$carousel-control-icon-width: 2rem !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n// scss-docs-end carousel-variables\n\n// scss-docs-start carousel-dark-variables\n$carousel-dark-indicator-active-bg: $black !default;\n$carousel-dark-caption-color: $black !default;\n$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;\n// scss-docs-end carousel-dark-variables\n\n\n// Spinners\n\n// scss-docs-start spinner-variables\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-vertical-align: -.125em !default;\n$spinner-border-width: .25em !default;\n$spinner-animation-speed: .75s !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n// scss-docs-end spinner-variables\n\n\n// Close\n\n// scss-docs-start close-variables\n$btn-close-width: 1em !default;\n$btn-close-height: $btn-close-width !default;\n$btn-close-padding-x: .25em !default;\n$btn-close-padding-y: $btn-close-padding-x !default;\n$btn-close-color: $black !default;\n$btn-close-bg: url(\"data:image/svg+xml,\") !default;\n$btn-close-focus-shadow: $focus-ring-box-shadow !default;\n$btn-close-opacity: .5 !default;\n$btn-close-hover-opacity: .75 !default;\n$btn-close-focus-opacity: 1 !default;\n$btn-close-disabled-opacity: .25 !default;\n$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;\n// scss-docs-end close-variables\n\n\n// Offcanvas\n\n// scss-docs-start offcanvas-variables\n$offcanvas-padding-y: $modal-inner-padding !default;\n$offcanvas-padding-x: $modal-inner-padding !default;\n$offcanvas-horizontal-width: 400px !default;\n$offcanvas-vertical-height: 30vh !default;\n$offcanvas-transition-duration: .3s !default;\n$offcanvas-border-color: $modal-content-border-color !default;\n$offcanvas-border-width: $modal-content-border-width !default;\n$offcanvas-title-line-height: $modal-title-line-height !default;\n$offcanvas-bg-color: var(--#{$prefix}body-bg) !default;\n$offcanvas-color: var(--#{$prefix}body-color) !default;\n$offcanvas-box-shadow: $modal-content-box-shadow-xs !default;\n$offcanvas-backdrop-bg: $modal-backdrop-bg !default;\n$offcanvas-backdrop-opacity: $modal-backdrop-opacity !default;\n// scss-docs-end offcanvas-variables\n\n// Code\n\n$code-font-size: $small-font-size !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .1875rem !default;\n$kbd-padding-x: .375rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: var(--#{$prefix}body-bg) !default;\n$kbd-bg: var(--#{$prefix}body-color) !default;\n$nested-kbd-font-weight: null !default; // Deprecated in v5.2.0, removing in v6\n\n$pre-color: null !default;\n","h6, h5, h4, h3, h2, h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1 {\n font-size: 2.5rem;\n }\n}\n\nh2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2 {\n font-size: 2rem;\n }\n}\n\nh3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3 {\n font-size: 1.75rem;\n }\n}\n\nh4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4 {\n font-size: 1.5rem;\n }\n}\n\nh5 {\n font-size: 1.25rem;\n}\n\nh6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\n.container {\n box-sizing: border-box;\n width: 100%;\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container {\n max-width: 1320px;\n }\n}","// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n"]} \ No newline at end of file diff --git a/plugins/construct-wp/assets/js/construct-wp-gutenberg.js b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js new file mode 100644 index 0000000..80a3503 --- /dev/null +++ b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js @@ -0,0 +1,213 @@ +/******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./plugins/construct-wp/src/gutenberg/panels/email/index.jsx": +/*!*******************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/panels/email/index.jsx ***! + \*******************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_edit_post__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/edit-post */ "@wordpress/edit-post"); +/* harmony import */ var _wordpress_edit_post__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_edit_post__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); +/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); + + + + +function EmailPanel() { + const postType = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('core/editor').getCurrentPostType(); + if (postType !== 'cwp_email') { + return null; + } + const { + slug + } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => { + return { + slug: select('core/editor').getEditedPostSlug() + }; + }); + const { + editPost + } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)('core/editor', [slug]); + return wp.element.createElement(_wordpress_edit_post__WEBPACK_IMPORTED_MODULE_0__.PluginDocumentSettingPanel, { + name: "ilab-restrict-access-sidebar", + title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Permalink', 'lancashire-textile-gallery') + }, wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.TextControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Set the email permalink', 'construct-wp'), + help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('This is used as a reference for this email template. This can be automatically generated on creation.', 'construct-wp'), + type: "text", + value: slug, + onChange: value => editPost({ + slug: value + }), + required: true + })); +} +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'email', + options: { + icon: '', + render: EmailPanel + } +}); + +/***/ }), + +/***/ "./plugins/construct-wp/src/gutenberg/panels/index.js": +/*!************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/panels/index.js ***! + \************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/plugins */ "@wordpress/plugins"); +/* harmony import */ var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _email__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./email */ "./plugins/construct-wp/src/gutenberg/panels/email/index.jsx"); + + +const panels = [_email__WEBPACK_IMPORTED_MODULE_1__["default"]]; +panels.forEach(panel => { + (0,_wordpress_plugins__WEBPACK_IMPORTED_MODULE_0__.registerPlugin)("cwp-".concat(panel.name, "-panel"), panel.options); +}); +/* harmony default export */ __webpack_exports__["default"] = (panels); + +/***/ }), + +/***/ "@wordpress/components": +/*!********************************!*\ + !*** external "wp.components" ***! + \********************************/ +/***/ (function(module) { + +module.exports = wp.components; + +/***/ }), + +/***/ "@wordpress/data": +/*!**************************!*\ + !*** external "wp.data" ***! + \**************************/ +/***/ (function(module) { + +module.exports = wp.data; + +/***/ }), + +/***/ "@wordpress/edit-post": +/*!******************************!*\ + !*** external "wp.editPost" ***! + \******************************/ +/***/ (function(module) { + +module.exports = wp.editPost; + +/***/ }), + +/***/ "@wordpress/i18n": +/*!**************************!*\ + !*** external "wp.i18n" ***! + \**************************/ +/***/ (function(module) { + +module.exports = wp.i18n; + +/***/ }), + +/***/ "@wordpress/plugins": +/*!*****************************!*\ + !*** external "wp.plugins" ***! + \*****************************/ +/***/ (function(module) { + +module.exports = wp.plugins; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ !function() { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function() { return module['default']; } : +/******/ function() { return module; }; +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +!function() { +/*!**********************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/construct-wp-gutenberg.js ***! + \**********************************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _panels__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./panels */ "./plugins/construct-wp/src/gutenberg/panels/index.js"); + +}(); +/******/ })() +; +//# sourceMappingURL=construct-wp-gutenberg.js.map \ No newline at end of file diff --git a/plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map new file mode 100644 index 0000000..b2273c5 --- /dev/null +++ b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map @@ -0,0 +1 @@ +{"version":3,"file":"construct-wp-gutenberg.js","mappings":";;;;;;;;;;;;;;;;;;;AAE6B;AAKL;AAGM;AAGN;AAExB,SAASM,UAAUA,CAAA,EAAG;EAClB,MAAMC,QAAQ,GAAGN,uDAAM,CAAE,aAAc,CAAC,CAACO,kBAAkB,CAAC,CAAC;EAE7D,IAAKD,QAAQ,KAAK,WAAW,EAAG;IAC5B,OAAO,IAAI;EACf;EAEA,MAAM;IAAEE;EAAK,CAAC,GAAGP,0DAAS,CAAID,MAAM,IAAM;IACtC,OAAO;MACHQ,IAAI,EAAER,MAAM,CAAE,aAAc,CAAC,CAACS,iBAAiB,CAAC;IACpD,CAAC;EACL,CAAE,CAAC;EAEH,MAAM;IAAEC;EAAS,CAAC,GAAGR,4DAAW,CAAE,aAAa,EAAE,CAACM,IAAI,CAAE,CAAC;EAEzD,OACIG,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACd,4EAA0B;IACvBe,IAAI,EAAC,8BAA8B;IACnCC,KAAK,EAAEX,mDAAE,CAAE,WAAW,EAAE,4BAA6B;EAAE,GAEvDO,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACV,8DAAW;IACRa,KAAK,EAAEZ,mDAAE,CAAE,yBAAyB,EAAE,cAAe,CAAE;IACvDa,IAAI,EAAEb,mDAAE,CAAE,uGAAuG,EAAE,cAAe,CAAE;IACpIc,IAAI,EAAC,MAAM;IACXC,KAAK,EAAGX,IAAM;IACdY,QAAQ,EAAKD,KAAK,IAAMT,QAAQ,CAAE;MAAEF,IAAI,EAAEW;IAAM,CAAE,CAAG;IACrDE,QAAQ;EAAA,CACX,CACuB,CAAC;AAErC;AAEA,+DAAe;EACXP,IAAI,EAAE,OAAO;EACbQ,OAAO,EAAE;IACLC,IAAI,EAAE,EAAE;IACRC,MAAM,EAAEnB;EACZ;AACJ,CAAC;;;;;;;;;;;;;;ACrDkD;AAEnB;AAEhC,MAAMqB,MAAM,GAAG,CACXrB,8CAAU,CACb;AAEDqB,MAAM,CAACC,OAAO,CAAIC,KAAK,IAAM;EACzBH,kEAAc,QAAAI,MAAA,CAASD,KAAK,CAACd,IAAI,aAAUc,KAAK,CAACN,OAAQ,CAAC;AAC9D,CAAE,CAAC;AAEH,+DAAeI,MAAM;;;;;;;;;;ACZrB;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/panels/email/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/panels/index.js","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.editPost\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.plugins\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-gutenberg.js"],"sourcesContent":["import {\n PluginDocumentSettingPanel,\n} from '@wordpress/edit-post'\nimport {\n select,\n useSelect,\n useDispatch,\n} from '@wordpress/data'\nimport {\n TextControl,\n} from '@wordpress/components'\nimport {\n __,\n} from '@wordpress/i18n'\n\nfunction EmailPanel() {\n const postType = select( 'core/editor' ).getCurrentPostType()\n\n if ( postType !== 'cwp_email' ) {\n return null\n }\n\n const { slug } = useSelect( ( select ) => {\n return {\n slug: select( 'core/editor' ).getEditedPostSlug(),\n }\n } )\n\n const { editPost } = useDispatch( 'core/editor', [slug] )\n\n return (\n \n editPost( { slug: value } ) }\n required\n />\n \n )\n}\n\nexport default {\n name: 'email',\n options: {\n icon: '',\n render: EmailPanel,\n },\n}\n","import { registerPlugin } from '@wordpress/plugins'\n\nimport EmailPanel from './email'\n\nconst panels = [\n EmailPanel,\n]\n\npanels.forEach( ( panel ) => {\n registerPlugin( `cwp-${panel.name}-panel`, panel.options )\n} )\n\nexport default panels\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.editPost;","module.exports = wp.i18n;","module.exports = wp.plugins;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './panels'\n"],"names":["PluginDocumentSettingPanel","select","useSelect","useDispatch","TextControl","__","EmailPanel","postType","getCurrentPostType","slug","getEditedPostSlug","editPost","wp","element","createElement","name","title","label","help","type","value","onChange","required","options","icon","render","registerPlugin","panels","forEach","panel","concat"],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js b/plugins/construct-wp/assets/js/construct-wp-settings.js new file mode 100644 index 0000000..9410604 --- /dev/null +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js @@ -0,0 +1,663 @@ +/******/ (function() { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ "./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx": +/*!**************************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx ***! + \**************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +__webpack_require__.r(__webpack_exports__); +function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +const CWPLogo = props => wp.element.createElement("svg", _extends({ + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 512 85.838" +}, props), wp.element.createElement("path", { + fill: "var(--wp-components-color-accent-foreground)", + d: "M138.281 63.925c-.849.566-2.004 1.202-3.466 1.91-1.462.707-3.172 1.298-5.128 1.768-1.957.471-4.091.707-6.401.707-3.961-.047-7.533-.753-10.715-2.121-3.183-1.367-5.883-3.229-8.098-5.588-2.217-2.357-3.925-5.08-5.128-8.169-1.202-3.088-1.803-6.377-1.803-9.867 0-3.819.624-7.343 1.874-10.573 1.249-3.229 3.006-6.035 5.27-8.416 2.263-2.38 4.939-4.231 8.027-5.552 3.088-1.319 6.472-1.98 10.15-1.98 3.064 0 5.846.413 8.346 1.238 2.499.826 4.644 1.804 6.436 2.935l-2.759 6.365c-1.414-.942-3.124-1.839-5.128-2.688-2.004-.849-4.233-1.273-6.684-1.273-2.5 0-4.857.495-7.072 1.485a18.315 18.315 0 0 0-5.871 4.173c-1.697 1.793-3.03 3.879-3.996 6.26-.967 2.381-1.45 4.94-1.45 7.674 0 2.782.435 5.364 1.308 7.745.872 2.381 2.121 4.444 3.749 6.188 1.627 1.745 3.595 3.112 5.906 4.102 2.309.99 4.903 1.485 7.78 1.485 2.593 0 4.903-.4 6.931-1.202 2.027-.802 3.702-1.698 5.022-2.688l2.899 6.083ZM145.636 52.821c0-2.923.695-5.564 2.086-7.922 1.39-2.357 3.312-4.219 5.764-5.587 2.451-1.367 5.234-2.051 8.346-2.051 3.206 0 6.012.684 8.416 2.051 2.405 1.368 4.267 3.23 5.588 5.587 1.319 2.358 1.98 4.999 1.98 7.922s-.661 5.576-1.98 7.957c-1.321 2.382-3.195 4.256-5.623 5.623-2.429 1.367-5.246 2.051-8.452 2.051-3.112 0-5.883-.649-8.31-1.945-2.429-1.296-4.339-3.112-5.729-5.446-1.392-2.334-2.086-5.08-2.086-8.24Zm6.577.071c0 1.886.424 3.596 1.273 5.128.849 1.533 1.992 2.747 3.431 3.642 1.438.896 3.029 1.344 4.774 1.344 1.839 0 3.477-.447 4.915-1.344 1.438-.895 2.557-2.109 3.36-3.642.801-1.532 1.202-3.242 1.202-5.128s-.401-3.595-1.202-5.128a9.542 9.542 0 0 0-3.36-3.678c-1.439-.919-3.076-1.379-4.915-1.379-1.792 0-3.407.472-4.845 1.415a10.07 10.07 0 0 0-3.395 3.713c-.826 1.533-1.238 3.218-1.238 5.057ZM192.599 38.464l.566 7.143-.283-1.132c.943-2.169 2.476-3.901 4.598-5.199 2.121-1.296 4.573-1.945 7.355-1.945s5.057.813 6.825 2.44c1.768 1.626 2.675 3.737 2.723 6.33v21.642h-6.648V48.434c-.048-1.602-.508-2.911-1.38-3.925-.873-1.013-2.228-1.52-4.067-1.52-1.697 0-3.23.472-4.597 1.414-1.368.944-2.44 2.24-3.218 3.89-.778 1.651-1.167 3.56-1.167 5.729v13.721h-6.578V38.462h5.871ZM234.044 68.31c-2.076 0-4.091-.366-6.047-1.096-1.957-.73-3.572-1.827-4.845-3.289l2.758-3.819c1.226 1.179 2.487 2.063 3.784 2.652 1.296.59 2.581.884 3.855.884.942 0 1.814-.117 2.616-.354.802-.235 1.45-.624 1.945-1.167.495-.541.743-1.284.743-2.228 0-1.036-.343-1.862-1.026-2.475-.684-.613-1.556-1.108-2.617-1.485a52.082 52.082 0 0 0-3.359-1.061c-2.405-.801-4.244-1.91-5.517-3.324-1.273-1.415-1.91-3.135-1.91-5.163 0-1.556.389-3.006 1.167-4.35.778-1.344 1.933-2.44 3.466-3.289 1.532-.849 3.431-1.273 5.694-1.273 2.027 0 3.842.247 5.446.742 1.602.495 3.112 1.308 4.527 2.44l-2.617 4.102a7.752 7.752 0 0 0-3.041-1.98c-1.179-.424-2.24-.66-3.183-.707a5.41 5.41 0 0 0-2.299.354c-.731.283-1.333.684-1.803 1.202a2.644 2.644 0 0 0-.707 1.839c0 .99.329 1.792.99 2.405.66.614 1.52 1.097 2.581 1.45s2.109.719 3.147 1.096c1.461.424 2.758.99 3.89 1.698s2.039 1.58 2.723 2.617c.683 1.037 1.025 2.334 1.025 3.89 0 1.745-.413 3.359-1.238 4.845-.826 1.485-2.076 2.665-3.749 3.537-1.674.872-3.808 1.308-6.401 1.308ZM257.455 25.591h6.577v13.014h8.063v5.163h-8.063v23.976h-6.577V43.768h-5.376v-5.163h5.376V25.591ZM285.887 38.464l.636 8.487-.354-1.132a12.253 12.253 0 0 1 3.289-4.562c1.438-1.249 2.946-2.216 4.527-2.9 1.579-.683 2.958-1.026 4.137-1.026l-.354 6.507c-2.217-.142-4.162.283-5.835 1.273a10.984 10.984 0 0 0-3.96 3.961 10.321 10.321 0 0 0-1.45 5.305v13.367h-6.507V38.463h5.871ZM315.875 68.876c-2.642 0-4.822-.814-6.542-2.44-1.722-1.627-2.629-3.737-2.723-6.33V38.464h6.578v19.308c.094 1.604.554 2.899 1.379 3.89.824.99 2.132 1.509 3.925 1.556 1.65 0 3.123-.483 4.42-1.45 1.296-.966 2.345-2.287 3.147-3.961.801-1.673 1.202-3.572 1.202-5.693v-13.65h6.577v29.281h-6.012l-.566-7.214.354 1.273c-.566 1.368-1.427 2.582-2.582 3.642-1.156 1.061-2.511 1.899-4.067 2.511-1.556.612-3.254.919-5.092.919ZM368.99 65.057c-1.321 1.037-2.9 1.863-4.739 2.475-1.838.613-3.677.92-5.516.92-3.207 0-6.012-.637-8.416-1.91-2.405-1.273-4.279-3.052-5.623-5.34-1.344-2.286-2.016-4.986-2.016-8.098s.718-5.822 2.158-8.133c1.438-2.31 3.324-4.09 5.658-5.34 2.334-1.249 4.845-1.874 7.532-1.874 2.357 0 4.467.33 6.33.99 1.862.661 3.454 1.556 4.774 2.687l-3.253 4.244c-.849-.66-1.887-1.249-3.112-1.768-1.226-.518-2.616-.778-4.173-.778a8.904 8.904 0 0 0-4.703 1.308 9.324 9.324 0 0 0-3.395 3.572c-.826 1.509-1.238 3.207-1.238 5.092 0 1.792.424 3.455 1.273 4.986a9.28 9.28 0 0 0 3.536 3.607c1.509.873 3.23 1.308 5.163 1.308 1.273 0 2.44-.188 3.501-.566a10.147 10.147 0 0 0 2.864-1.556l3.395 4.173ZM380.307 25.591h6.577v13.014h8.063v5.163h-8.063v23.976h-6.577V43.768h-5.376v-5.163h5.376V25.591ZM399.402 16.043h12.024l11.104 32.676-1.627-.707 9.689-24.118 4.739 14.075-14.994 32.18-20.935-54.106Zm26.098 0h10.185l12.802 31.615-1.839-.283 9.548-31.332h11.033l-20.087 53.965L425.5 16.043ZM491.984 15.689c4.29 0 7.922.719 10.892 2.157 2.971 1.439 5.234 3.466 6.79 6.083S512 29.647 512 33.23c0 2.122-.318 4.256-.955 6.401a17.05 17.05 0 0 1-3.041 5.835c-1.391 1.745-3.253 3.147-5.588 4.208-2.334 1.061-5.198 1.591-8.593 1.591h-7.355v16.48h-10.255V15.689h15.772Zm1.768 25.603c1.556 0 2.852-.27 3.89-.813 1.037-.541 1.85-1.225 2.44-2.051a8.507 8.507 0 0 0 1.273-2.582c.258-.895.389-1.673.389-2.334 0-.518-.083-1.213-.247-2.086-.166-.872-.507-1.756-1.025-2.652-.52-.895-1.308-1.65-2.369-2.263-1.061-.612-2.488-.919-4.279-.919h-7.355v15.701h7.285Z" +}), wp.element.createElement("circle", { + cx: 42.919, + cy: 42.919, + r: 42.919, + fill: "var(--wp-components-color-accent)" +}), wp.element.createElement("path", { + fill: "var(--wp-components-color-accent-inverted)", + d: "m38.6 40.059-8.451 3.261 8.451 3.261v1.976l-10.665-4.213v-2.047L38.6 38.083v1.976ZM47.383 31.608h2.071l-7.856 22.425h-2.071l7.856-22.425ZM60.831 42.297v2.047l-10.665 4.213v-1.976l8.475-3.261-8.475-3.261v-1.976l10.665 4.214Z" +}), wp.element.createElement("path", { + fill: "var(--wp-components-color-accent-inverted)", + d: "M62.66 53.35c-3.762 7.177-11.278 12.076-19.943 12.076-12.43 0-22.507-10.077-22.507-22.507s10.077-22.507 22.507-22.507c8.665 0 16.181 4.899 19.943 12.076l8.341-5.04c-5.476-9.99-16.088-16.764-28.284-16.764-17.803 0-32.236 14.432-32.236 32.236s14.432 32.236 32.236 32.236c12.196 0 22.808-6.775 28.284-16.764l-8.341-5.04Z" +})); +/* harmony default export */ __webpack_exports__["default"] = (CWPLogo); + +/***/ }), + +/***/ "./plugins/construct-wp/src/gutenberg/components/index.js": +/*!****************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/components/index.js ***! + \****************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CWPLogo: function() { return /* reexport safe */ _cwp_logo__WEBPACK_IMPORTED_MODULE_0__["default"]; }, +/* harmony export */ Notices: function() { return /* reexport safe */ _notices__WEBPACK_IMPORTED_MODULE_1__["default"]; } +/* harmony export */ }); +/* harmony import */ var _cwp_logo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cwp-logo */ "./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx"); +/* harmony import */ var _notices__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./notices */ "./plugins/construct-wp/src/gutenberg/components/notices/index.jsx"); + + + +/***/ }), + +/***/ "./plugins/construct-wp/src/gutenberg/components/notices/index.jsx": +/*!*************************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/components/notices/index.jsx ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); +/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_notices__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/notices */ "@wordpress/notices"); +/* harmony import */ var _wordpress_notices__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_notices__WEBPACK_IMPORTED_MODULE_2__); + + + +const Notices = () => { + const notices = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_wordpress_notices__WEBPACK_IMPORTED_MODULE_2__.store).getNotices().filter(notice => notice.type === 'snackbar'), []); + const { + removeNotice + } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_wordpress_notices__WEBPACK_IMPORTED_MODULE_2__.store); + return wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.SnackbarList, { + className: "edit-site-notices", + notices: notices, + onRemove: removeNotice + }); +}; +/* harmony default export */ __webpack_exports__["default"] = (Notices); + +/***/ }), + +/***/ "./plugins/construct-wp/src/gutenberg/pages/index.js": +/*!***********************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/pages/index.js ***! + \***********************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ SettingsPage: function() { return /* reexport safe */ _settings__WEBPACK_IMPORTED_MODULE_0__["default"]; } +/* harmony export */ }); +/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings */ "./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx"); +/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks"); +/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _settings_tabs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./settings/tabs */ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js"); + + + +(0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.addFilter)('cwpTabs', 'cwpCore', () => { + return [_settings_tabs__WEBPACK_IMPORTED_MODULE_2__.generalTab, _settings_tabs__WEBPACK_IMPORTED_MODULE_2__.optimizeTab]; +}, 1); + +/***/ }), + +/***/ "./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx": +/*!*********************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx ***! + \*********************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks"); +/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components */ "./plugins/construct-wp/src/gutenberg/components/index.js"); + + + + + +class SettingsPage extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component { + constructor() { + super(); + const urlParams = new URLSearchParams(window.location.search); + const requested = urlParams.get('tab'); + this.state = { + currentTab: typeof requested === 'string' ? requested.replace('cwp-', '') : '', + siteUrl: window.location.origin + window.location.pathname + '?page=construct_wp_settings' + }; + } + render() { + /** + * Must return as follows: + * [ + * { + * tab: { + * name: 'tab1', + * title: 'Tab 1', + * }, + * panel: TabPanel, + * }, + * ] + */ + let tabDetails = (0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__.applyFilters)('cwpTabs', []); + let tabs = tabDetails.map(tab => tab.tab); + let panels = {}; + tabDetails.forEach(tab => { + panels[tab.tab.name] = tab.panel; + }); + return wp.element.createElement(React.Fragment, null, wp.element.createElement("div", { + className: "construct-wp__header" + }, wp.element.createElement("div", { + className: "construct-wp__container" + }, wp.element.createElement("div", { + className: "construct-wp__title" + }, wp.element.createElement(_components__WEBPACK_IMPORTED_MODULE_4__.CWPLogo, { + title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('ConstructWP', 'construct-wp'), + className: "construct-wp__logo" + }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.VisuallyHidden, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('ConstructWP', 'construct-wp')), wp.element.createElement("span", { + className: "construct-wp__version-badge" + }, "v", cwpSettingsData.version)), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TabPanel, { + tabs: tabs, + initialTabName: this.state.currentTab, + onSelect: tabName => { + window.history.replaceState(null, '', "".concat(this.state.siteUrl, "&tab=cwp-").concat(tabName)); + this.setState({ + currentTab: tabName + }); + } + }, () => {}))), wp.element.createElement("div", { + className: "construct-wp__main" + }, wp.element.createElement("div", { + className: "construct-wp__container" + }, Object.entries(panels).map((_ref, i) => { + let [panelName, Panel] = _ref; + return wp.element.createElement("div", { + id: 'cwp-' + panelName, + className: "construct-wp__tab-panel", + key: i, + style: { + display: this.state.currentTab === panelName ? 'block' : 'none' + } + }, wp.element.createElement(Panel, null)); + }))), wp.element.createElement("div", { + className: "construct-wp__notices" + }, wp.element.createElement(_components__WEBPACK_IMPORTED_MODULE_4__.Notices, null))); + } +} +/* harmony default export */ __webpack_exports__["default"] = (SettingsPage); + +/***/ }), + +/***/ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx": +/*!**********************************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx ***! + \**********************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); +/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); + + + + + +// eslint-disable-next-line new-cap +const htmlToElem = html => (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.RawHTML)({ + children: html +}); +class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component { + constructor() { + super(); + this.state = { + isAPILoaded: false, + isAPISaving: false, + removeAdminBar: true, + restrictAdminAccess: true + }; + } + componentDidMount() { + wp.api.loadPromise.then(() => { + this.settings = new wp.api.models.Settings(); + if (!this.state.isAPILoaded) { + this.settings.fetch().then(response => { + this.setState({ + isAPILoaded: true, + removeAdminBar: !!response.cwp_remove_admin_bar, + restrictAdminAccess: !!response.cwp_restrict_admin_access + }); + }); + } + }); + } + render() { + if (!this.state.isAPILoaded) { + return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('General', 'construct-wp')), wp.element.createElement("div", { + className: "construct-wp__loading-spinner" + })); + } + return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('General', 'construct-wp')), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Remove admin bar', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Removes the admin bar from the frontend if the user doesn\'t have the %s capability', 'construct-wp'), 'cwp_view_admin_dashboard')), + checked: this.state.removeAdminBar, + onChange: () => { + this.setState({ + removeAdminBar: !this.state.removeAdminBar + }); + }, + disabled: this.state.isAPISaving + }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Restrict admin access', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Redirects users to the frontend if they try to access the admin area without the %s capability', 'construct-wp'), 'cwp_view_admin_dashboard')), + checked: this.state.restrictAdminAccess, + onChange: () => { + this.setState({ + restrictAdminAccess: !this.state.restrictAdminAccess + }); + }, + disabled: this.state.isAPISaving + }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { + isPrimary: true, + isLarge: true, + disabled: this.state.isAPISaving, + onClick: () => { + this.setState({ + isAPISaving: true + }); + const settings = new wp.api.models.Settings({ + /* eslint-disable camelcase */ + cwp_remove_admin_bar: this.state.removeAdminBar, + cwp_restrict_admin_access: this.state.restrictAdminAccess + /* eslint-enable camelcase */ + }); + + settings.save().then(response => { + this.setState({ + isAPISaving: false, + removeAdminBar: !!response.cwp_remove_admin_bar, + restrictAdminAccess: !!response.cwp_restrict_admin_access + }); + (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Settings saved!', 'construct-wp'), { + type: 'snackbar', + speak: true, + isDismissible: true, + icon: '' + }); + }).catch(() => { + (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createErrorNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Unable to save settings', 'construct-wp'), { + type: 'snackbar', + speak: true, + isDismissible: true, + icon: '' + }); + }); + }, + style: { + marginTop: '1.5rem' + } + }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Save', 'construct-wp'))); + } +} +/* harmony default export */ __webpack_exports__["default"] = ({ + tab: { + name: 'general', + title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('General', 'construct-wp') + }, + panel: GeneralTab +}); + +/***/ }), + +/***/ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js": +/*!*************************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js ***! + \*************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ generalTab: function() { return /* reexport safe */ _general__WEBPACK_IMPORTED_MODULE_0__["default"]; }, +/* harmony export */ optimizeTab: function() { return /* reexport safe */ _optimize__WEBPACK_IMPORTED_MODULE_1__["default"]; } +/* harmony export */ }); +/* harmony import */ var _general__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./general */ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx"); +/* harmony import */ var _optimize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./optimize */ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx"); + + + +/***/ }), + +/***/ "./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx": +/*!***********************************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); +/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); +/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); + + + + +class OptimizeTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component { + constructor() { + super(); + this.state = { + isAPILoaded: false, + isAPISaving: false, + optimize: true, + wpBloat: {}, + dashboardMeta: {} + }; + } + componentDidMount() { + wp.api.loadPromise.then(() => { + this.settings = new wp.api.models.Settings(); + if (!this.state.isAPILoaded) { + this.settings.fetch().then(response => { + this.setState({ + isAPILoaded: true, + optimize: !!response.cwp_optimize, + wpBloat: response.cwp_optimize_wp_bloat, + dashboardMeta: response.cwp_optimize_dashboard_meta + }); + }); + } + }); + } + selectAll(state) { + const isAllChecked = Object.values(this.state[state]).every(Boolean); + const isIndeterminate = Object.values(this.state[state]).some(Boolean) && !isAllChecked; + return wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.CheckboxControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Select all', 'construct-wp'), + checked: isAllChecked, + indeterminate: isIndeterminate, + onChange: value => { + let newState = this.state[state]; + for (const key in newState) { + if (Object.prototype.hasOwnProperty.call(newState, key)) { + newState[key] = value; + } + } + this.setState({ + [state]: newState + }); + } + }); + } + checkbox(area, item, title) { + return wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.CheckboxControl, { + label: title, + checked: this.state[area][item], + onChange: () => { + this.setState({ + [area]: { + ...this.state[area], + [item]: !this.state[area][item] + } + }); + }, + disabled: this.state.isAPISaving + }); + } + render() { + if (!this.state.isAPILoaded) { + return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Optimize', 'construct-wp')), wp.element.createElement("div", { + className: "construct-wp__loading-spinner" + })); + } + return wp.element.createElement(React.Fragment, null, wp.element.createElement("div", null, wp.element.createElement("h2", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Optimize', 'construct-wp')), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Optimize', 'construct-wp'), + help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Whether to optimize the site to remove bloat', 'construct-wp'), + checked: this.state.optimize, + onChange: () => { + this.setState({ + optimize: !this.state.optimize + }); + }, + disabled: this.state.isAPISaving + })), this.state.optimize && wp.element.createElement(React.Fragment, null, wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Card, { + style: { + boxShadow: 'none' + } + }, wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.CardHeader, null, wp.element.createElement("h4", { + style: { + margin: 0 + } + }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Remove bloat', 'construct-wp'))), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.CardBody, null, wp.element.createElement("h5", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('WordPress', 'construct-wp')), this.selectAll('wpBloat'), wp.element.createElement("div", { + className: "construct-wp__checklist" + }, this.checkbox('wpBloat', 'feeds', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Feeds', 'construct-wp')), this.checkbox('wpBloat', 'rsd_link', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Really Simple Directory link', 'construct-wp')), this.checkbox('wpBloat', 'rel_atts', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Relational attributes', 'construct-wp')), this.checkbox('wpBloat', 'rel_links', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Relational links', 'construct-wp')), this.checkbox('wpBloat', 'version_number', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Version numbers', 'construct-wp')), this.checkbox('wpBloat', 'json_api_links', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('JSON API links', 'construct-wp')), this.checkbox('wpBloat', 'emoji', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Emoji', 'construct-wp')), this.checkbox('wpBloat', 'xmlrpc', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('XML-RPC', 'construct-wp')), this.checkbox('wpBloat', 'jquery_migrate', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('jQuery migrate', 'construct-wp')), this.checkbox('wpBloat', 'self_pingback', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Self pingback', 'construct-wp'))))), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Card, { + style: { + boxShadow: 'none' + } + }, wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.CardHeader, null, wp.element.createElement("h4", { + style: { + margin: 0 + } + }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Remove dashboard meta boxes', 'construct-wp'))), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.CardBody, null, this.selectAll('dashboardMeta'), wp.element.createElement("div", { + className: "construct-wp__checklist" + }, this.checkbox('dashboardMeta', 'welcome', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Welcome panel', 'construct-wp')), this.checkbox('dashboardMeta', 'site_health', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Site health', 'construct-wp')), this.checkbox('dashboardMeta', 'at_a_glance', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('At a glance', 'construct-wp')), this.checkbox('dashboardMeta', 'activity', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Activity', 'construct-wp')), this.checkbox('dashboardMeta', 'quick_draft', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Quick draft', 'construct-wp')), this.checkbox('dashboardMeta', 'events_and_news', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Events and news', 'construct-wp')))))), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { + isPrimary: true, + isLarge: true, + disabled: this.state.isAPISaving, + onClick: () => { + this.setState({ + isAPISaving: true + }); + const settings = new wp.api.models.Settings({ + /* eslint-disable camelcase */ + cwp_optimize: this.state.optimize, + cwp_optimize_wp_bloat: this.state.wpBloat, + cwp_optimize_dashboard_meta: this.state.dashboardMeta + /* eslint-enable camelcase */ + }); + + settings.save().then(response => { + this.setState({ + isAPISaving: false, + optimize: !!response.cwp_optimize, + wpBloat: response.cwp_optimize_wp_bloat, + dashboardMeta: response.cwp_optimize_dashboard_meta + }); + (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Settings saved!', 'construct-wp'), { + type: 'snackbar', + speak: true, + isDismissible: true, + icon: '' + }); + }).catch(() => { + (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createErrorNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Unable to save settings', 'construct-wp'), { + type: 'snackbar', + speak: true, + isDismissible: true, + icon: '' + }); + }); + }, + style: { + marginTop: '1.5rem' + } + }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Save', 'construct-wp'))); + } +} +/* harmony default export */ __webpack_exports__["default"] = ({ + tab: { + name: 'optimize', + title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Optimize', 'construct-wp') + }, + panel: OptimizeTab +}); + +/***/ }), + +/***/ "@wordpress/components": +/*!********************************!*\ + !*** external "wp.components" ***! + \********************************/ +/***/ (function(module) { + +module.exports = wp.components; + +/***/ }), + +/***/ "@wordpress/data": +/*!**************************!*\ + !*** external "wp.data" ***! + \**************************/ +/***/ (function(module) { + +module.exports = wp.data; + +/***/ }), + +/***/ "@wordpress/element": +/*!*****************************!*\ + !*** external "wp.element" ***! + \*****************************/ +/***/ (function(module) { + +module.exports = wp.element; + +/***/ }), + +/***/ "@wordpress/hooks": +/*!***************************!*\ + !*** external "wp.hooks" ***! + \***************************/ +/***/ (function(module) { + +module.exports = wp.hooks; + +/***/ }), + +/***/ "@wordpress/i18n": +/*!**************************!*\ + !*** external "wp.i18n" ***! + \**************************/ +/***/ (function(module) { + +module.exports = wp.i18n; + +/***/ }), + +/***/ "@wordpress/notices": +/*!*****************************!*\ + !*** external "wp.notices" ***! + \*****************************/ +/***/ (function(module) { + +module.exports = wp.notices; + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ !function() { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function() { return module['default']; } : +/******/ function() { return module; }; +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ !function() { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = function(exports, definition) { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ !function() { +/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } +/******/ }(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +!function() { +/*!*********************************************************************!*\ + !*** ./plugins/construct-wp/src/gutenberg/construct-wp-settings.js ***! + \*********************************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _pages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pages */ "./plugins/construct-wp/src/gutenberg/pages/index.js"); + + +document.addEventListener('DOMContentLoaded', () => { + const htmlOutput = document.getElementById('construct-wp-settings'); + if (htmlOutput) { + (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.render)(wp.element.createElement(_pages__WEBPACK_IMPORTED_MODULE_1__.SettingsPage, null), htmlOutput); + } +}); +}(); +/******/ })() +; +//# sourceMappingURL=construct-wp-settings.js.map \ No newline at end of file diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js.map b/plugins/construct-wp/assets/js/construct-wp-settings.js.map new file mode 100644 index 0000000..5e70b5c --- /dev/null +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n constructor() {\n super()\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'tab' )\n\n this.state = {\n currentTab: typeof requested === 'string' ? requested.replace( 'cwp-', '' ) : '',\n siteUrl: window.location.origin + window.location.pathname + '?page=construct_wp_settings',\n }\n }\n\n render() {\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n let tabs = tabDetails.map( ( tab ) => tab.tab )\n let panels = {}\n\n tabDetails.forEach( ( tab ) => {\n panels[tab.tab.name] = tab.panel\n } )\n\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n window.history.replaceState( null, '', `${this.state.siteUrl}&tab=cwp-${tabName}` )\n this.setState( {\n currentTab: tabName,\n } )\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {Object.entries( panels ).map( ( [panelName, Panel], i ) => (\n \n \n
\n ) )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n \n \n

{__( 'Remove bloat', 'construct-wp' )}

\n
\n\n \n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n
\n\n \n \n

{__( 'Remove dashboard meta boxes', 'construct-wp' )}

\n
\n\n \n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","constructor","urlParams","URLSearchParams","window","location","search","requested","get","state","currentTab","replace","siteUrl","origin","pathname","render","tabDetails","tabs","map","tab","panels","forEach","name","panel","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","history","replaceState","concat","setState","Object","entries","_ref","i","panelName","Panel","id","key","style","display","RawHTML","Button","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","cwp_remove_admin_bar","cwp_restrict_admin_access","label","help","checked","onChange","disabled","isPrimary","isLarge","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","marginTop","Card","CardBody","CardHeader","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","value","newState","prototype","hasOwnProperty","call","checkbox","area","item","boxShadow","margin","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file From 6821e6acf9d887035ced5f352d640ab066c1776a Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Tue, 10 Oct 2023 19:36:10 +0100 Subject: [PATCH 04/27] Removed need for `CWP_THEME_SLUG` constant --- .../construct-wp/languages/construct-wp.pot | 10 +++---- .../models/class-construct-wp-assets.php | 27 ++++++++++++------- .../models/class-construct-wp.php | 4 --- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 8e82edd..3f057e6 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-10 18:17+0000\n" +"POT-Creation-Date: 2023-10-10 18:34+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -113,20 +113,20 @@ msgstr "" msgid "Next" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:233 +#: plugins/construct-wp/models/class-construct-wp.php:229 msgid "No feed available" msgstr "" #. translators: %d Footer column number -#: plugins/construct-wp/models/class-construct-wp.php:304 +#: plugins/construct-wp/models/class-construct-wp.php:300 msgid "Footer %d" msgstr "" #. translators: %d Footer column number -#: plugins/construct-wp/models/class-construct-wp.php:310 +#: plugins/construct-wp/models/class-construct-wp.php:306 msgid "Add widgets here to appear in your footer column %d" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:479 +#: plugins/construct-wp/models/class-construct-wp.php:475 msgid "White Logo" msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp-assets.php b/plugins/construct-wp/models/class-construct-wp-assets.php index 077882a..5009e16 100644 --- a/plugins/construct-wp/models/class-construct-wp-assets.php +++ b/plugins/construct-wp/models/class-construct-wp-assets.php @@ -3,7 +3,7 @@ * Assets functionality. * * Dynamically includes the required controller, CSS & JS file for the currently used template. Enqueues a global CSS - * & JS file based on the `CWP_THEME_SLUG` constant. + * & JS file based on the theme names from `get_template()` and `get_stylesheet()`. * * @since 1.0.0 * @package construct-wp @@ -107,17 +107,24 @@ public static function template_controller( $template ) { public static function base_enqueue() { global $wp_filesystem; - $style_path = self::final_path( '/assets/css/' . CWP_THEME_SLUG . '.css', false ); - $style_uri = self::final_path( '/assets/css/' . CWP_THEME_SLUG . '.css', true ); - $script_path = self::final_path( '/assets/js/' . CWP_THEME_SLUG . '.js', false ); - $script_uri = self::final_path( '/assets/js/' . CWP_THEME_SLUG . '.js', true ); + $themes = array_unique( array( + get_template(), + get_stylesheet(), + ) ); - if ( $wp_filesystem->exists( $style_path ) ) { - wp_enqueue_style( CWP_THEME_SLUG, $style_uri ); - } + foreach ( $themes as $theme ) { + $style_path = self::final_path( '/assets/css/' . $theme . '.css', false ); + $style_uri = self::final_path( '/assets/css/' . $theme . '.css', true ); + $script_path = self::final_path( '/assets/js/' . $theme . '.js', false ); + $script_uri = self::final_path( '/assets/js/' . $theme . '.js', true ); - if ( $wp_filesystem->exists( $script_path ) ) { - wp_enqueue_script( CWP_THEME_SLUG, $script_uri, array(), false, true ); + if ( $wp_filesystem->exists( $style_path ) ) { + wp_enqueue_style( $theme, $style_uri ); + } + + if ( $wp_filesystem->exists( $script_path ) ) { + wp_enqueue_script( $theme, $script_uri, array(), false, true ); + } } } diff --git a/plugins/construct-wp/models/class-construct-wp.php b/plugins/construct-wp/models/class-construct-wp.php index 6078d73..10c077e 100644 --- a/plugins/construct-wp/models/class-construct-wp.php +++ b/plugins/construct-wp/models/class-construct-wp.php @@ -35,10 +35,6 @@ public static function init() { do_action( 'cwp_before_setup' ); - if ( ! defined( 'CWP_THEME_SLUG' ) ) { - define( 'CWP_THEME_SLUG', CWP_SLUG ); - } - // WordPress translation. self::load_textdomain(); From 93d6752316ac360213ff31f05927ecb81ddb6846 Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Tue, 10 Oct 2023 21:13:22 +0100 Subject: [PATCH 05/27] Moved settings page to use multiple pages Instead of just a single page under settings, it's now multiple "pages" under it's own menu item --- .../assets/css/construct-wp-admin.css | 5 ++ .../assets/css/construct-wp-admin.css.map | 2 +- .../assets/js/construct-wp-settings.js | 59 +++++++++------- .../assets/js/construct-wp-settings.js.map | 2 +- .../construct-wp/languages/construct-wp.pot | 20 +++++- .../models/class-construct-wp-settings.php | 49 +++++++++++--- .../src/gutenberg/pages/settings/index.jsx | 67 ++++++++++--------- .../src/scss/construct-wp-admin.scss | 7 ++ 8 files changed, 141 insertions(+), 70 deletions(-) diff --git a/plugins/construct-wp/assets/css/construct-wp-admin.css b/plugins/construct-wp/assets/css/construct-wp-admin.css index b33d490..88ffab2 100644 --- a/plugins/construct-wp/assets/css/construct-wp-admin.css +++ b/plugins/construct-wp/assets/css/construct-wp-admin.css @@ -1,4 +1,9 @@ .menu-item.menu-item-depth-0 .cwp-link_type { display: none; +} + +/* stylelint-disable-next-line selector-id-pattern */ +#toplevel_page_construct-wp .wp-first-item { + display: none; } /*# sourceMappingURL=construct-wp-admin.css.map */ \ No newline at end of file diff --git a/plugins/construct-wp/assets/css/construct-wp-admin.css.map b/plugins/construct-wp/assets/css/construct-wp-admin.css.map index 6f37d35..9fc7360 100644 --- a/plugins/construct-wp/assets/css/construct-wp-admin.css.map +++ b/plugins/construct-wp/assets/css/construct-wp-admin.css.map @@ -1 +1 @@ -{"version":3,"sources":["construct-wp-admin.scss","construct-wp-admin.css"],"names":[],"mappings":"AAEQ;EACI,aAAA;ACDZ","file":"construct-wp-admin.css","sourcesContent":[".menu-item {\n &.menu-item-depth-0 {\n .cwp-link_type {\n display: none;\n }\n }\n}\n",".menu-item.menu-item-depth-0 .cwp-link_type {\n display: none;\n}"]} \ No newline at end of file +{"version":3,"sources":["construct-wp-admin.scss","construct-wp-admin.css"],"names":[],"mappings":"AAEQ;EACI,aAAA;ACDZ;;ADMA,oDAAA;AAEI;EACI,aAAA;ACJR","file":"construct-wp-admin.css","sourcesContent":[".menu-item {\n &.menu-item-depth-0 {\n .cwp-link_type {\n display: none;\n }\n }\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#toplevel_page_construct-wp {\n .wp-first-item {\n display: none;\n }\n}\n",".menu-item.menu-item-depth-0 .cwp-link_type {\n display: none;\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#toplevel_page_construct-wp .wp-first-item {\n display: none;\n}"]} \ No newline at end of file diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js b/plugins/construct-wp/assets/js/construct-wp-settings.js index 9410604..c63643c 100644 --- a/plugins/construct-wp/assets/js/construct-wp-settings.js +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js @@ -120,6 +120,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../components */ "./plugins/construct-wp/src/gutenberg/components/index.js"); +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } @@ -128,14 +131,12 @@ __webpack_require__.r(__webpack_exports__); class SettingsPage extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component { constructor() { super(); - const urlParams = new URLSearchParams(window.location.search); - const requested = urlParams.get('tab'); - this.state = { - currentTab: typeof requested === 'string' ? requested.replace('cwp-', '') : '', - siteUrl: window.location.origin + window.location.pathname + '?page=construct_wp_settings' - }; - } - render() { + _defineProperty(this, "tabs", []); + _defineProperty(this, "panels", {}); + _defineProperty(this, "siteUrl", ''); + _defineProperty(this, "currentTab", ''); + this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'; + /** * Must return as follows: * [ @@ -149,11 +150,16 @@ class SettingsPage extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compo * ] */ let tabDetails = (0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_2__.applyFilters)('cwpTabs', []); - let tabs = tabDetails.map(tab => tab.tab); - let panels = {}; + this.tabs = tabDetails.map(tab => tab.tab); tabDetails.forEach(tab => { - panels[tab.tab.name] = tab.panel; + this.panels[tab.tab.name] = tab.panel; }); + const urlParams = new URLSearchParams(window.location.search); + const requested = urlParams.get('page').replace('construct-wp', '').replace(/^-/, ''); + this.currentTab = typeof requested === 'string' ? requested : ''; + } + render() { + // return <> return wp.element.createElement(React.Fragment, null, wp.element.createElement("div", { className: "construct-wp__header" }, wp.element.createElement("div", { @@ -166,28 +172,29 @@ class SettingsPage extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compo }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.VisuallyHidden, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('ConstructWP', 'construct-wp')), wp.element.createElement("span", { className: "construct-wp__version-badge" }, "v", cwpSettingsData.version)), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TabPanel, { - tabs: tabs, - initialTabName: this.state.currentTab, + tabs: this.tabs, + initialTabName: this.currentTab, onSelect: tabName => { - window.history.replaceState(null, '', "".concat(this.state.siteUrl, "&tab=cwp-").concat(tabName)); - this.setState({ - currentTab: tabName - }); + if (tabName !== this.currentTab) { + window.location.href = "".concat(this.siteUrl, "-").concat(tabName); + } } }, () => {}))), wp.element.createElement("div", { className: "construct-wp__main" }, wp.element.createElement("div", { className: "construct-wp__container" - }, Object.entries(panels).map((_ref, i) => { + }, !this.currentTab && wp.element.createElement("div", { + className: "construct-wp__loading-spinner" + }), Object.entries(this.panels).map((_ref, i) => { let [panelName, Panel] = _ref; - return wp.element.createElement("div", { - id: 'cwp-' + panelName, - className: "construct-wp__tab-panel", - key: i, - style: { - display: this.state.currentTab === panelName ? 'block' : 'none' - } - }, wp.element.createElement(Panel, null)); + if (this.currentTab === panelName) { + return wp.element.createElement("div", { + id: 'cwp-' + panelName, + className: "construct-wp__tab-panel", + key: i + }, wp.element.createElement(Panel, null)); + } + return wp.element.createElement(React.Fragment, null); }))), wp.element.createElement("div", { className: "construct-wp__notices" }, wp.element.createElement(_components__WEBPACK_IMPORTED_MODULE_4__.Notices, null))); diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js.map b/plugins/construct-wp/assets/js/construct-wp-settings.js.map index 5e70b5c..bc72b63 100644 --- a/plugins/construct-wp/assets/js/construct-wp-settings.js.map +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js.map @@ -1 +1 @@ -{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n constructor() {\n super()\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'tab' )\n\n this.state = {\n currentTab: typeof requested === 'string' ? requested.replace( 'cwp-', '' ) : '',\n siteUrl: window.location.origin + window.location.pathname + '?page=construct_wp_settings',\n }\n }\n\n render() {\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n let tabs = tabDetails.map( ( tab ) => tab.tab )\n let panels = {}\n\n tabDetails.forEach( ( tab ) => {\n panels[tab.tab.name] = tab.panel\n } )\n\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n window.history.replaceState( null, '', `${this.state.siteUrl}&tab=cwp-${tabName}` )\n this.setState( {\n currentTab: tabName,\n } )\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {Object.entries( panels ).map( ( [panelName, Panel], i ) => (\n \n \n
\n ) )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n \n \n

{__( 'Remove bloat', 'construct-wp' )}

\n
\n\n \n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n
\n\n \n \n

{__( 'Remove dashboard meta boxes', 'construct-wp' )}

\n
\n\n \n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","constructor","urlParams","URLSearchParams","window","location","search","requested","get","state","currentTab","replace","siteUrl","origin","pathname","render","tabDetails","tabs","map","tab","panels","forEach","name","panel","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","history","replaceState","concat","setState","Object","entries","_ref","i","panelName","Panel","id","key","style","display","RawHTML","Button","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","cwp_remove_admin_bar","cwp_restrict_admin_access","label","help","checked","onChange","disabled","isPrimary","isLarge","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","marginTop","Card","CardBody","CardHeader","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","value","newState","prototype","hasOwnProperty","call","checkbox","area","item","boxShadow","margin","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n \n \n

{__( 'Remove bloat', 'construct-wp' )}

\n
\n\n \n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n
\n\n \n \n

{__( 'Remove dashboard meta boxes', 'construct-wp' )}

\n
\n\n \n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","label","help","checked","onChange","disabled","isPrimary","isLarge","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","style","marginTop","Card","CardBody","CardHeader","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","value","newState","prototype","hasOwnProperty","call","checkbox","area","item","boxShadow","margin","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 3f057e6..579755e 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-10 18:34+0000\n" +"POT-Creation-Date: 2023-10-10 20:10+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -84,7 +84,23 @@ msgstr "" msgid "ConstructWP" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:209 +#: plugins/construct-wp/models/class-construct-wp-settings.php:168 +msgid "ConstructWP Settings - General" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp-settings.php:169 +msgid "General" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp-settings.php:177 +msgid "ConstructWP Settings - Optimize" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp-settings.php:178 +msgid "Optimize" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp-settings.php:238 msgid "Settings" msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp-settings.php b/plugins/construct-wp/models/class-construct-wp-settings.php index e3a79ee..4d24e65 100644 --- a/plugins/construct-wp/models/class-construct-wp-settings.php +++ b/plugins/construct-wp/models/class-construct-wp-settings.php @@ -152,17 +152,46 @@ private static function register_settings() { * @return void */ public static function settings_page() { - add_options_page( + add_menu_page( __( 'ConstructWP Settings', 'construct-wp' ), __( 'ConstructWP', 'construct-wp' ), 'manage_options', - 'construct_wp_settings', - function () { - ?> -
- ' ), + 80 ); + + add_submenu_page( + 'construct-wp', + __( 'ConstructWP Settings - General', 'construct-wp' ), + __( 'General', 'construct-wp' ), + 'manage_options', + 'construct-wp-general', + array( __CLASS__, 'render_page' ) + ); + + add_submenu_page( + 'construct-wp', + __( 'ConstructWP Settings - Optimize', 'construct-wp' ), + __( 'Optimize', 'construct-wp' ), + 'manage_options', + 'construct-wp-optimize', + array( __CLASS__, 'render_page' ) + ); + } + + /** + * The render function for the settings pages. This only has to output a target div for React + * to target and inject the page + * + * @return void + */ + public static function render_page() { + ?> +
+ 'construct_wp_settings', - ), admin_url( 'options-general.php' ) ) . '">' . __( 'Settings', 'construct-wp' ) . '' + 'page' => 'construct-wp', + ), admin_url( 'admin.php' ) ) . '">' . __( 'Settings', 'construct-wp' ) . '' ); return $actions; } diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/index.jsx index 86c97d9..76077b2 100644 --- a/plugins/construct-wp/src/gutenberg/pages/settings/index.jsx +++ b/plugins/construct-wp/src/gutenberg/pages/settings/index.jsx @@ -17,19 +17,16 @@ import { } from '../../components' class SettingsPage extends Component { + tabs = [] + panels = {} + siteUrl = '' + currentTab = '' + constructor() { super() - const urlParams = new URLSearchParams( window.location.search ) - const requested = urlParams.get( 'tab' ) - - this.state = { - currentTab: typeof requested === 'string' ? requested.replace( 'cwp-', '' ) : '', - siteUrl: window.location.origin + window.location.pathname + '?page=construct_wp_settings', - } - } + this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp' - render() { /** * Must return as follows: * [ @@ -43,13 +40,20 @@ class SettingsPage extends Component { * ] */ let tabDetails = applyFilters( 'cwpTabs', [] ) - let tabs = tabDetails.map( ( tab ) => tab.tab ) - let panels = {} + this.tabs = tabDetails.map( ( tab ) => tab.tab ) tabDetails.forEach( ( tab ) => { - panels[tab.tab.name] = tab.panel + this.panels[tab.tab.name] = tab.panel } ) + const urlParams = new URLSearchParams( window.location.search ) + const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' ) + + this.currentTab = typeof requested === 'string' ? requested : '' + } + + render() { + // return <> return ( <>
@@ -66,13 +70,12 @@ class SettingsPage extends Component {
{ - window.history.replaceState( null, '', `${this.state.siteUrl}&tab=cwp-${tabName}` ) - this.setState( { - currentTab: tabName, - } ) + if ( tabName !== this.currentTab ) { + window.location.href = `${this.siteUrl}-${tabName}` + } }} > { () => {} } @@ -82,18 +85,22 @@ class SettingsPage extends Component {
- {Object.entries( panels ).map( ( [panelName, Panel], i ) => ( -
- -
- ) )} + {!this.currentTab &&
} + {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => { + if ( this.currentTab === panelName ) { + return ( +
+ +
+ ) + } + + return <> + } )}
diff --git a/plugins/construct-wp/src/scss/construct-wp-admin.scss b/plugins/construct-wp/src/scss/construct-wp-admin.scss index 4a2b1e7..ad63514 100644 --- a/plugins/construct-wp/src/scss/construct-wp-admin.scss +++ b/plugins/construct-wp/src/scss/construct-wp-admin.scss @@ -5,3 +5,10 @@ } } } + +/* stylelint-disable-next-line selector-id-pattern */ +#toplevel_page_construct-wp { + .wp-first-item { + display: none; + } +} From 5d8a42b49f0aab70eb5c1e3244cffc32490cabc0 Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Tue, 10 Oct 2023 21:55:26 +0100 Subject: [PATCH 06/27] Missed some version numbers & changelog --- .gulpconfig.js | 2 +- plugins/construct-wp/README.txt | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.gulpconfig.js b/.gulpconfig.js index a359d6e..6bd745d 100644 --- a/.gulpconfig.js +++ b/.gulpconfig.js @@ -4,7 +4,7 @@ const areas = { path: './plugins/construct-wp', name: 'construct-wp', title: 'ConstructWP', - version: '0.1.0', + version: '0.1.1', }, } diff --git a/plugins/construct-wp/README.txt b/plugins/construct-wp/README.txt index eebb8e5..827b8e9 100644 --- a/plugins/construct-wp/README.txt +++ b/plugins/construct-wp/README.txt @@ -4,7 +4,7 @@ Tags: framework, system Requires at least: 5.4.0 Tested up to: 6.3.1 Requires PHP: 7.4 -Stable tag: 0.1.0 +Stable tag: 0.1.1 License: GPL v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -49,6 +49,12 @@ Yes! Models and controllers can be auto-initiated if the class has a static meth == Changelog == += 0.1.1 - 2023-10-10 = + +* Fixed `the_logo` method in `CWP_Assets` +* Fixed theme models not being loaded correctly +* Fixed pagination not working + = 0.1.0 - 2023-09-26 = * Initial version \ No newline at end of file From a45591cc4459956725763f5ee31668a7cd354762 Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Tue, 10 Oct 2023 21:55:54 +0100 Subject: [PATCH 07/27] Added bookmarks for version number & changelog --- .vscode/bookmarks.json | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .vscode/bookmarks.json diff --git a/.vscode/bookmarks.json b/.vscode/bookmarks.json new file mode 100644 index 0000000..cd616ef --- /dev/null +++ b/.vscode/bookmarks.json @@ -0,0 +1,54 @@ +{ + "files": [ + { + "path": ".gulpconfig.js", + "bookmarks": [ + { + "line": 6, + "column": 18, + "label": "Version number" + } + ] + }, + { + "path": "plugins/construct-wp/construct-wp.php", + "bookmarks": [ + { + "line": 5, + "column": 22, + "label": "Version number" + }, + { + "line": 34, + "column": 24, + "label": "Version number" + } + ] + }, + { + "path": "plugins/construct-wp/README.txt", + "bookmarks": [ + { + "line": 6, + "column": 12, + "label": "Version number" + }, + { + "line": 49, + "column": 0, + "label": "Changelog" + } + ] + }, + { + "path": "README.md", + "bookmarks": [ + { + "line": 37, + "column": 0, + "label": "Changelog" + } + ] + } + ] +} \ No newline at end of file From 0f40f8d7b1bc7dd7d4f6dbbf72b41de031c450df Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Tue, 10 Oct 2023 22:43:14 +0100 Subject: [PATCH 08/27] Removed unnecessary todos --- phpcs.xml | 4 ---- plugins/construct-wp/models/class-construct-wp-navwalker.php | 1 - 2 files changed, 5 deletions(-) diff --git a/phpcs.xml b/phpcs.xml index 9474e53..75d05b3 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -38,10 +38,6 @@ - - - - diff --git a/plugins/construct-wp/models/class-construct-wp-navwalker.php b/plugins/construct-wp/models/class-construct-wp-navwalker.php index 05cc952..ff2bd62 100644 --- a/plugins/construct-wp/models/class-construct-wp-navwalker.php +++ b/plugins/construct-wp/models/class-construct-wp-navwalker.php @@ -111,7 +111,6 @@ public function start_el( &$output, $data_object, $depth = 0, $args = null, $cur } if ( $menu_item->logout_link == '1' ) { - // TODO re-work with page definition in back end? $logout_redirect = apply_filters( 'cwp_logout_redirect', get_home_url() ); $menu_item->url = wp_logout_url( $logout_redirect ); } From 2d61c722d0671a5c7befe1b9a9e8f398ead5933e Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Tue, 10 Oct 2023 22:56:10 +0100 Subject: [PATCH 09/27] Added some useful todos --- plugins/construct-wp/construct-wp.php | 4 ++++ plugins/construct-wp/models/class-construct-wp-menu.php | 1 + .../construct-wp/models/class-construct-wp-settings.php | 9 +++++++++ plugins/construct-wp/models/class-construct-wp.php | 1 + 4 files changed, 15 insertions(+) diff --git a/plugins/construct-wp/construct-wp.php b/plugins/construct-wp/construct-wp.php index fdf6a61..2b8993a 100644 --- a/plugins/construct-wp/construct-wp.php +++ b/plugins/construct-wp/construct-wp.php @@ -38,6 +38,8 @@ define( 'CWP_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); define( 'CWP_BASENAME', plugin_basename( __FILE__ ) ); +// TODO remove activator? + /** * The code that runs during plugin activation. */ @@ -46,6 +48,8 @@ function activate_construct_wp() { CWP_Activator::activate(); } +// TODO remove deactivator? + /** * The code that runs during plugin deactivation. */ diff --git a/plugins/construct-wp/models/class-construct-wp-menu.php b/plugins/construct-wp/models/class-construct-wp-menu.php index 60379f9..e9e43d5 100644 --- a/plugins/construct-wp/models/class-construct-wp-menu.php +++ b/plugins/construct-wp/models/class-construct-wp-menu.php @@ -34,6 +34,7 @@ class CWP_Menu { */ public static function init() { self::register_navs(); + // TODO make custom fields work in customize page. add_action( 'wp_nav_menu_item_custom_fields', array( 'CWP_Menu', 'custom_fields' ), 10, 2 ); add_action( 'wp_update_nav_menu_item', array( 'CWP_Menu', 'menu_update' ), 10, 2 ); add_filter( 'wp_get_nav_menu_items', array( 'CWP_Menu', 'filter_items' ), 10, 1 ); diff --git a/plugins/construct-wp/models/class-construct-wp-settings.php b/plugins/construct-wp/models/class-construct-wp-settings.php index 4d24e65..5b5a2af 100644 --- a/plugins/construct-wp/models/class-construct-wp-settings.php +++ b/plugins/construct-wp/models/class-construct-wp-settings.php @@ -47,6 +47,15 @@ private static function register_settings() { 'default' => true, ) ); + // TODO controller enable. + // TODO base stylesheet enable. + // TODO base js enable. + // TODO template stylesheet enable. + // TODO template js enable. + // TODO footer column count?. + // TODO autorun theme classes. + // TODO theme support. + register_setting( 'cwp_settings', 'cwp_optimize', array( 'type' => 'boolean', 'show_in_rest' => true, diff --git a/plugins/construct-wp/models/class-construct-wp.php b/plugins/construct-wp/models/class-construct-wp.php index 10c077e..8701ac3 100644 --- a/plugins/construct-wp/models/class-construct-wp.php +++ b/plugins/construct-wp/models/class-construct-wp.php @@ -259,6 +259,7 @@ public static function disable_script_version( $src ) { */ public static function load_textdomain() { load_plugin_textdomain( CWP_SLUG, false, CWP_PLUGIN_PATH . 'languages' ); + // TODO autoload theme textdomain. } /** From daf802954596e9a623d095e92a07b20af5433579 Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Wed, 11 Oct 2023 00:46:47 +0100 Subject: [PATCH 10/27] Added custom menu items to screen options --- phpcs.xml | 1 - .../construct-wp/languages/construct-wp.pot | 48 +++++------ .../models/class-construct-wp-menu.php | 84 ++++++++++++------- 3 files changed, 79 insertions(+), 54 deletions(-) diff --git a/phpcs.xml b/phpcs.xml index 75d05b3..1bb1651 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -185,7 +185,6 @@ - diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 579755e..2bd6941 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-10 20:10+0000\n" +"POT-Creation-Date: 2023-10-10 23:46+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -24,83 +24,83 @@ msgstr "" msgid "Emails" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:53 +#: plugins/construct-wp/models/class-construct-wp-menu.php:55 msgid "Primary menu" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:54 +#: plugins/construct-wp/models/class-construct-wp-menu.php:56 msgid "Footer menu" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:73 +#: plugins/construct-wp/models/class-construct-wp-menu.php:76, plugins/construct-wp/models/class-construct-wp-menu.php:189 msgid "Icon" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:84 +#: plugins/construct-wp/models/class-construct-wp-menu.php:89, plugins/construct-wp/models/class-construct-wp-menu.php:190 msgid "Visibility" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:90 +#: plugins/construct-wp/models/class-construct-wp-menu.php:95 msgid "Always" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:91 +#: plugins/construct-wp/models/class-construct-wp-menu.php:96 msgid "Logged in only" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:92 +#: plugins/construct-wp/models/class-construct-wp-menu.php:97 msgid "Logged out only" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:105 +#: plugins/construct-wp/models/class-construct-wp-menu.php:111, plugins/construct-wp/models/class-construct-wp-menu.php:191 msgid "Logout link" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:110 +#: plugins/construct-wp/models/class-construct-wp-menu.php:117, plugins/construct-wp/models/class-construct-wp-menu.php:192 msgid "Dropdown item type" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:112 +#: plugins/construct-wp/models/class-construct-wp-menu.php:119 msgid "Link" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:113 +#: plugins/construct-wp/models/class-construct-wp-menu.php:120 msgid "Header" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:114 +#: plugins/construct-wp/models/class-construct-wp-menu.php:121 msgid "Divider" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:115 +#: plugins/construct-wp/models/class-construct-wp-menu.php:122 msgid "Text" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:156 +#: plugins/construct-wp/models/class-construct-wp-settings.php:165 msgid "ConstructWP Settings" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:157 +#: plugins/construct-wp/models/class-construct-wp-settings.php:166 msgid "ConstructWP" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:168 +#: plugins/construct-wp/models/class-construct-wp-settings.php:177 msgid "ConstructWP Settings - General" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:169 +#: plugins/construct-wp/models/class-construct-wp-settings.php:178 msgid "General" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:177 +#: plugins/construct-wp/models/class-construct-wp-settings.php:186 msgid "ConstructWP Settings - Optimize" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:178 +#: plugins/construct-wp/models/class-construct-wp-settings.php:187 msgid "Optimize" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:238 +#: plugins/construct-wp/models/class-construct-wp-settings.php:247 msgid "Settings" msgstr "" @@ -134,15 +134,15 @@ msgid "No feed available" msgstr "" #. translators: %d Footer column number -#: plugins/construct-wp/models/class-construct-wp.php:300 +#: plugins/construct-wp/models/class-construct-wp.php:301 msgid "Footer %d" msgstr "" #. translators: %d Footer column number -#: plugins/construct-wp/models/class-construct-wp.php:306 +#: plugins/construct-wp/models/class-construct-wp.php:307 msgid "Add widgets here to appear in your footer column %d" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:475 +#: plugins/construct-wp/models/class-construct-wp.php:476 msgid "White Logo" msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp-menu.php b/plugins/construct-wp/models/class-construct-wp-menu.php index e9e43d5..cf2a5b9 100644 --- a/plugins/construct-wp/models/class-construct-wp-menu.php +++ b/plugins/construct-wp/models/class-construct-wp-menu.php @@ -38,6 +38,7 @@ public static function init() { add_action( 'wp_nav_menu_item_custom_fields', array( 'CWP_Menu', 'custom_fields' ), 10, 2 ); add_action( 'wp_update_nav_menu_item', array( 'CWP_Menu', 'menu_update' ), 10, 2 ); add_filter( 'wp_get_nav_menu_items', array( 'CWP_Menu', 'filter_items' ), 10, 1 ); + add_filter( 'manage_nav-menus_columns', array( 'CWP_Menu', 'screen_options' ), 20 ); } /** @@ -70,31 +71,35 @@ private static function register_navs() { */ public static function custom_fields( $item_id, $menu_item ) { ?> -

- - +

+

-

- - +

+

- - Date: Wed, 11 Oct 2023 11:59:28 +0100 Subject: [PATCH 11/27] Implemented menu items into customizer --- .gulpconfig.js | 86 ++++++++++ gulpfile.js | 1 + package.json | 1 + .../assets/css/construct-wp-admin.css | 36 ++++- .../assets/css/construct-wp-admin.css.map | 2 +- .../assets/js/construct-wp-customizer.js | 87 ++++++++++ .../assets/js/construct-wp-customizer.js.map | 1 + .../construct-wp/languages/construct-wp.pot | 50 +++--- .../models/class-construct-wp-assets.php | 13 +- .../models/class-construct-wp-menu.php | 149 ++++++++++++++++-- .../models/class-construct-wp-settings.php | 1 + .../models/class-construct-wp.php | 3 + .../src/js/construct-wp-customizer.js | 79 ++++++++++ .../src/scss/construct-wp-admin.scss | 16 +- yarn.lock | 22 +++ 15 files changed, 503 insertions(+), 44 deletions(-) create mode 100644 plugins/construct-wp/assets/js/construct-wp-customizer.js create mode 100644 plugins/construct-wp/assets/js/construct-wp-customizer.js.map create mode 100644 plugins/construct-wp/src/js/construct-wp-customizer.js diff --git a/.gulpconfig.js b/.gulpconfig.js index 6bd745d..e1352c6 100644 --- a/.gulpconfig.js +++ b/.gulpconfig.js @@ -103,6 +103,92 @@ module.exports = { }, }, }, + scripts: { + process: true, + watch: true, + logColor: 'magenta', + areas: [ + { + paths: { + src: `${areas.constructWp.path}/src/js/**/*`, + watch: `${areas.constructWp.path}/src/js/**/*`, + dest: `${areas.constructWp.path}/assets/js`, + }, + minify: { + process: process.env.NODE_ENV !== 'development', + separate: false, + }, + pipes: { + // Put any pipe overrides here + src: { + allowEmpty: true, + base: `${areas.constructWp.path}/src/js`, + sourcemaps: process.env.NODE_ENV === 'development', + }, + dest: { + sourcemaps: '.', + }, + }, + }, + ], + pipes: { + filters: { + lint: [ + '**/*.js', + ], + build: [ + '**/*.js', + '!**/libs/**/*.js', + ], + }, + watch: { + events: 'all', + }, + eslint: { + // Overrides the version of eslint used + eslint: null, + formatter: 'stylish', + options: { + fix: false, + }, + }, + rollup: { + // Overrides the version of rollup used. + // Make sure to pass through the rollup function + // e.g. require( 'rollup' ).rollup + rollup: null, + input: { + plugins: [ + require( '@rollup/plugin-babel' ).babel( { + exclude: 'node_modules/**', + babelHelpers: 'bundled', + } ), + require( '@rollup/plugin-node-resolve' ).nodeResolve(), + ], + treeshake: false, + onwarn( e ) { + if ( e.code === 'THIS_IS_UNDEFINED' ) { + return + } + + console.warn( e.message ) + }, + }, + output: { + file: 'scripts.js', + name: 'Scripts', + format: 'umd', + generatedCode: 'es2015', + globals: {}, + }, + }, + uglify: { + output: { + comments: '/^!|@preserve|@license|@cc_on/i', + }, + }, + }, + }, webpack: { process: true, watch: true, diff --git a/gulpfile.js b/gulpfile.js index d6d0b4c..fad9f59 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -4,6 +4,7 @@ const gulp = require( 'gulp' ) require( '@ilabdev/clean' )( gulp ) require( '@ilabdev/styles' )( gulp ) +require( '@ilabdev/scripts' )( gulp ) require( '@ilabdev/webpack' )( gulp ) require( '@ilabdev/translate' )( gulp ) require( '@ilabdev/browsersync' )( gulp ) diff --git a/package.json b/package.json index d325467..fcc55af 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "@ilabdev/browsersync": "^1.0.0", "@ilabdev/clean": "^1.0.0", "@ilabdev/default": "^1.0.0", + "@ilabdev/scripts": "^1.0.0", "@ilabdev/styles": "^1.0.0", "@ilabdev/translate": "^1.0.0", "@ilabdev/webpack": "^1.0.0", diff --git a/plugins/construct-wp/assets/css/construct-wp-admin.css b/plugins/construct-wp/assets/css/construct-wp-admin.css index 88ffab2..9d9f46a 100644 --- a/plugins/construct-wp/assets/css/construct-wp-admin.css +++ b/plugins/construct-wp/assets/css/construct-wp-admin.css @@ -1,9 +1,41 @@ -.menu-item.menu-item-depth-0 .cwp-link_type { - display: none; +.menu-item.menu-item-depth-0 .field-cwp-link_type { + display: none !important; } /* stylelint-disable-next-line selector-id-pattern */ #toplevel_page_construct-wp .wp-first-item { display: none; +} + +.control-section-nav_menu .field-cwp-icon { + display: none; +} + +.control-section-nav_menu.field-cwp-icon-active .field-cwp-icon { + display: block; +} + +.control-section-nav_menu .field-cwp-visibility { + display: none; +} + +.control-section-nav_menu.field-cwp-visibility-active .field-cwp-visibility { + display: block; +} + +.control-section-nav_menu .field-cwp-logout_link { + display: none; +} + +.control-section-nav_menu.field-cwp-logout_link-active .field-cwp-logout_link { + display: block; +} + +.control-section-nav_menu .field-cwp-link_type { + display: none; +} + +.control-section-nav_menu.field-cwp-link_type-active .field-cwp-link_type { + display: block; } /*# sourceMappingURL=construct-wp-admin.css.map */ \ No newline at end of file diff --git a/plugins/construct-wp/assets/css/construct-wp-admin.css.map b/plugins/construct-wp/assets/css/construct-wp-admin.css.map index 9fc7360..c9cfb71 100644 --- a/plugins/construct-wp/assets/css/construct-wp-admin.css.map +++ b/plugins/construct-wp/assets/css/construct-wp-admin.css.map @@ -1 +1 @@ -{"version":3,"sources":["construct-wp-admin.scss","construct-wp-admin.css"],"names":[],"mappings":"AAEQ;EACI,aAAA;ACDZ;;ADMA,oDAAA;AAEI;EACI,aAAA;ACJR","file":"construct-wp-admin.css","sourcesContent":[".menu-item {\n &.menu-item-depth-0 {\n .cwp-link_type {\n display: none;\n }\n }\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#toplevel_page_construct-wp {\n .wp-first-item {\n display: none;\n }\n}\n",".menu-item.menu-item-depth-0 .cwp-link_type {\n display: none;\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#toplevel_page_construct-wp .wp-first-item {\n display: none;\n}"]} \ No newline at end of file +{"version":3,"sources":["construct-wp-admin.scss","construct-wp-admin.css"],"names":[],"mappings":"AAEQ;EACI,wBAAA;ACDZ;;ADMA,oDAAA;AAEI;EACI,aAAA;ACJR;;ADWI;EACI,aAAA;ACRR;;ADWI;EACI,cAAA;ACRR;;ADGI;EACI,aAAA;ACAR;;ADGI;EACI,cAAA;ACAR;;ADLI;EACI,aAAA;ACQR;;ADLI;EACI,cAAA;ACQR;;ADbI;EACI,aAAA;ACgBR;;ADbI;EACI,cAAA;ACgBR","file":"construct-wp-admin.css","sourcesContent":[".menu-item {\n &.menu-item-depth-0 {\n .field-cwp-link_type {\n display: none !important;\n }\n }\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#toplevel_page_construct-wp {\n .wp-first-item {\n display: none;\n }\n}\n\n$menu-fields: icon, visibility, logout_link, link_type;\n\n@each $field in $menu-fields {\n .control-section-nav_menu .field-cwp-#{$field} {\n display: none;\n }\n\n .control-section-nav_menu.field-cwp-#{$field}-active .field-cwp-#{$field} {\n display: block;\n }\n}\n",".menu-item.menu-item-depth-0 .field-cwp-link_type {\n display: none !important;\n}\n\n/* stylelint-disable-next-line selector-id-pattern */\n#toplevel_page_construct-wp .wp-first-item {\n display: none;\n}\n\n.control-section-nav_menu .field-cwp-icon {\n display: none;\n}\n\n.control-section-nav_menu.field-cwp-icon-active .field-cwp-icon {\n display: block;\n}\n\n.control-section-nav_menu .field-cwp-visibility {\n display: none;\n}\n\n.control-section-nav_menu.field-cwp-visibility-active .field-cwp-visibility {\n display: block;\n}\n\n.control-section-nav_menu .field-cwp-logout_link {\n display: none;\n}\n\n.control-section-nav_menu.field-cwp-logout_link-active .field-cwp-logout_link {\n display: block;\n}\n\n.control-section-nav_menu .field-cwp-link_type {\n display: none;\n}\n\n.control-section-nav_menu.field-cwp-link_type-active .field-cwp-link_type {\n display: block;\n}"]} \ No newline at end of file diff --git a/plugins/construct-wp/assets/js/construct-wp-customizer.js b/plugins/construct-wp/assets/js/construct-wp-customizer.js new file mode 100644 index 0000000..4c6be8d --- /dev/null +++ b/plugins/construct-wp/assets/js/construct-wp-customizer.js @@ -0,0 +1,87 @@ +(function (factory) { + typeof define === 'function' && define.amd ? define(factory) : + factory(); +})((function () { 'use strict'; + + (function () { + // Augment each menu item control once it is added and embedded. + wp.customize.control.bind('add', control => { + if (control.extended(wp.customize.Menus.MenuItemControl)) { + control.deferred.embedded.done(() => { + extendControl(control); + }); + } + }); + + /** + * Extend the control with roles information. + * + * @param {wp.customize.Menus.MenuItemControl} control + */ + function extendControl(control) { + control.iconField = control.container.find('[name="edit-menu-item-icon"]'); + control.visibilityField = control.container.find('[name="edit-menu-item-visibility"]'); + control.logoutLinkField = control.container.find('[name="edit-menu-item-logout_link"]'); + control.linkTypeField = control.container.find('[name="edit-menu-item-link_type"]'); + + // Set the initial UI state. + updateControlFields(control); + + // Update the UI state when the setting changes programmatically. + control.setting.bind(() => { + updateControlFields(control); + }); + + // Update the setting when the inputs are modified. + control.iconField.on('input', e => { + setSetting(control.setting, { + icon: e.target.value + }); + }); + control.visibilityField.on('change', e => { + setSetting(control.setting, { + visibility: e.target.value + }); + }); + control.logoutLinkField.on('change', e => { + setSetting(control.setting, { + // eslint-disable-next-line camelcase + logout_link: e.target.checked ? '1' : '0' + }); + }); + control.linkTypeField.on('change', e => { + setSetting(control.setting, { + // eslint-disable-next-line camelcase + link_type: e.target.value + }); + }); + } + + /** + * Extend the setting with updated information. + * + * @param {wp.customize.Setting} setting + * @param {string|Array} roles + */ + function setSetting(setting, value) { + setting.set({ + ..._.clone(setting()), + ...value + }); + } + + /** + * Apply the control's setting value to the control's fields. + * + * @param {wp.customize.Menus.MenuItemControl} control + */ + function updateControlFields(control) { + control.iconField.val(control.setting().icon); + control.visibilityField.val(control.setting().visibility); + control.logoutLinkField.prop('checked', control.setting().logout_link === '1'); + control.linkTypeField.val(control.setting().link_type); + } + })(); + +})); +//# sourceMappingURL=construct-wp-customizer.js.map diff --git a/plugins/construct-wp/assets/js/construct-wp-customizer.js.map b/plugins/construct-wp/assets/js/construct-wp-customizer.js.map new file mode 100644 index 0000000..9b96baf --- /dev/null +++ b/plugins/construct-wp/assets/js/construct-wp-customizer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts.js","sources":["plugins/construct-wp/src/js/construct-wp-customizer.js"],"sourcesContent":["( function() {\n // Augment each menu item control once it is added and embedded.\n wp.customize.control.bind( 'add', ( control ) => {\n if ( control.extended( wp.customize.Menus.MenuItemControl ) ) {\n control.deferred.embedded.done( () => {\n extendControl( control )\n } )\n }\n } )\n\n /**\n * Extend the control with roles information.\n *\n * @param {wp.customize.Menus.MenuItemControl} control\n */\n function extendControl( control ) {\n control.iconField = control.container.find( '[name=\"edit-menu-item-icon\"]' )\n control.visibilityField = control.container.find( '[name=\"edit-menu-item-visibility\"]' )\n control.logoutLinkField = control.container.find( '[name=\"edit-menu-item-logout_link\"]' )\n control.linkTypeField = control.container.find( '[name=\"edit-menu-item-link_type\"]' )\n\n // Set the initial UI state.\n updateControlFields( control )\n\n // Update the UI state when the setting changes programmatically.\n control.setting.bind( () => {\n updateControlFields( control )\n } )\n\n // Update the setting when the inputs are modified.\n control.iconField.on( 'input', ( e ) => {\n setSetting( control.setting, {\n icon: e.target.value,\n } )\n } )\n control.visibilityField.on( 'change', ( e ) => {\n setSetting( control.setting, {\n visibility: e.target.value,\n } )\n } )\n control.logoutLinkField.on( 'change', ( e ) => {\n setSetting( control.setting, {\n // eslint-disable-next-line camelcase\n logout_link: e.target.checked ? '1' : '0',\n } )\n } )\n control.linkTypeField.on( 'change', ( e ) => {\n setSetting( control.setting, {\n // eslint-disable-next-line camelcase\n link_type: e.target.value,\n } )\n } )\n }\n\n /**\n * Extend the setting with updated information.\n *\n * @param {wp.customize.Setting} setting\n * @param {string|Array} roles\n */\n function setSetting( setting, value ) {\n setting.set( {\n ..._.clone( setting() ),\n ...value,\n } )\n }\n\n /**\n * Apply the control's setting value to the control's fields.\n *\n * @param {wp.customize.Menus.MenuItemControl} control\n */\n function updateControlFields( control ) {\n control.iconField.val( control.setting().icon )\n control.visibilityField.val( control.setting().visibility )\n control.logoutLinkField.prop( 'checked', control.setting().logout_link === '1' )\n control.linkTypeField.val( control.setting().link_type )\n }\n} )()\n"],"names":["wp","customize","control","bind","extended","Menus","MenuItemControl","deferred","embedded","done","extendControl","iconField","container","find","visibilityField","logoutLinkField","linkTypeField","updateControlFields","setting","on","e","setSetting","icon","target","value","visibility","logout_link","checked","link_type","set","_","clone","val","prop"],"mappings":"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"} \ No newline at end of file diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 2bd6941..647d070 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-10 23:46+0000\n" +"POT-Creation-Date: 2023-10-11 10:48+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -24,83 +24,83 @@ msgstr "" msgid "Emails" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:55 +#: plugins/construct-wp/models/class-construct-wp-menu.php:57 msgid "Primary menu" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:56 +#: plugins/construct-wp/models/class-construct-wp-menu.php:58 msgid "Footer menu" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:76, plugins/construct-wp/models/class-construct-wp-menu.php:189 +#: plugins/construct-wp/models/class-construct-wp-menu.php:78, plugins/construct-wp/models/class-construct-wp-menu.php:198, plugins/construct-wp/models/class-construct-wp-menu.php:312 msgid "Icon" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:89, plugins/construct-wp/models/class-construct-wp-menu.php:190 +#: plugins/construct-wp/models/class-construct-wp-menu.php:91, plugins/construct-wp/models/class-construct-wp-menu.php:210, plugins/construct-wp/models/class-construct-wp-menu.php:313 msgid "Visibility" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:95 +#: plugins/construct-wp/models/class-construct-wp-menu.php:97, plugins/construct-wp/models/class-construct-wp-menu.php:216 msgid "Always" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:96 +#: plugins/construct-wp/models/class-construct-wp-menu.php:98, plugins/construct-wp/models/class-construct-wp-menu.php:217 msgid "Logged in only" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:97 +#: plugins/construct-wp/models/class-construct-wp-menu.php:99, plugins/construct-wp/models/class-construct-wp-menu.php:218 msgid "Logged out only" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:111, plugins/construct-wp/models/class-construct-wp-menu.php:191 +#: plugins/construct-wp/models/class-construct-wp-menu.php:113, plugins/construct-wp/models/class-construct-wp-menu.php:231, plugins/construct-wp/models/class-construct-wp-menu.php:314 msgid "Logout link" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:117, plugins/construct-wp/models/class-construct-wp-menu.php:192 +#: plugins/construct-wp/models/class-construct-wp-menu.php:119, plugins/construct-wp/models/class-construct-wp-menu.php:237, plugins/construct-wp/models/class-construct-wp-menu.php:315 msgid "Dropdown item type" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:119 +#: plugins/construct-wp/models/class-construct-wp-menu.php:121, plugins/construct-wp/models/class-construct-wp-menu.php:239 msgid "Link" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:120 +#: plugins/construct-wp/models/class-construct-wp-menu.php:122, plugins/construct-wp/models/class-construct-wp-menu.php:240 msgid "Header" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:121 +#: plugins/construct-wp/models/class-construct-wp-menu.php:123, plugins/construct-wp/models/class-construct-wp-menu.php:241 msgid "Divider" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:122 +#: plugins/construct-wp/models/class-construct-wp-menu.php:124, plugins/construct-wp/models/class-construct-wp-menu.php:242 msgid "Text" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:165 +#: plugins/construct-wp/models/class-construct-wp-settings.php:166 msgid "ConstructWP Settings" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:166 +#: plugins/construct-wp/models/class-construct-wp-settings.php:167 msgid "ConstructWP" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:177 +#: plugins/construct-wp/models/class-construct-wp-settings.php:178 msgid "ConstructWP Settings - General" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:178 +#: plugins/construct-wp/models/class-construct-wp-settings.php:179 msgid "General" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:186 +#: plugins/construct-wp/models/class-construct-wp-settings.php:187 msgid "ConstructWP Settings - Optimize" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:187 +#: plugins/construct-wp/models/class-construct-wp-settings.php:188 msgid "Optimize" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:247 +#: plugins/construct-wp/models/class-construct-wp-settings.php:248 msgid "Settings" msgstr "" @@ -129,20 +129,20 @@ msgstr "" msgid "Next" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:229 +#: plugins/construct-wp/models/class-construct-wp.php:232 msgid "No feed available" msgstr "" #. translators: %d Footer column number -#: plugins/construct-wp/models/class-construct-wp.php:301 +#: plugins/construct-wp/models/class-construct-wp.php:304 msgid "Footer %d" msgstr "" #. translators: %d Footer column number -#: plugins/construct-wp/models/class-construct-wp.php:307 +#: plugins/construct-wp/models/class-construct-wp.php:310 msgid "Add widgets here to appear in your footer column %d" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:476 +#: plugins/construct-wp/models/class-construct-wp.php:479 msgid "White Logo" msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp-assets.php b/plugins/construct-wp/models/class-construct-wp-assets.php index 5009e16..c351f00 100644 --- a/plugins/construct-wp/models/class-construct-wp-assets.php +++ b/plugins/construct-wp/models/class-construct-wp-assets.php @@ -159,7 +159,18 @@ public static function template_enqueue() { * @return void */ public static function admin_enqueue() { - wp_enqueue_style( 'cwp-admin', CWP_PLUGIN_URL . 'assets/css/construct-wp-admin.css', true ); + wp_enqueue_style( 'cwp-admin', CWP_PLUGIN_URL . 'assets/css/construct-wp-admin.css' ); + } + + /** + * Enqueue's files to the WordPress customizer. + * + * @return void + */ + public static function customizer_enqueue() { + wp_enqueue_script( 'cwp-customizer', CWP_PLUGIN_URL . 'assets/js/construct-wp-customizer.js', array( + 'customize-nav-menus', + ), filemtime( CWP_PLUGIN_PATH . '/assets/js/construct-wp-customizer.js' ), true ); } /** diff --git a/plugins/construct-wp/models/class-construct-wp-menu.php b/plugins/construct-wp/models/class-construct-wp-menu.php index cf2a5b9..79a0075 100644 --- a/plugins/construct-wp/models/class-construct-wp-menu.php +++ b/plugins/construct-wp/models/class-construct-wp-menu.php @@ -19,10 +19,10 @@ class CWP_Menu { * @var array */ private static $field_defaults = array( + 'icon' => '', 'visibility' => 'always', 'logout_link' => '0', 'link_type' => 'link', - 'icon' => '', ); /** @@ -34,11 +34,13 @@ class CWP_Menu { */ public static function init() { self::register_navs(); - // TODO make custom fields work in customize page. - add_action( 'wp_nav_menu_item_custom_fields', array( 'CWP_Menu', 'custom_fields' ), 10, 2 ); + add_action( 'wp_nav_menu_item_custom_fields', array( 'CWP_Menu', 'menu_fields' ), 10, 2 ); add_action( 'wp_update_nav_menu_item', array( 'CWP_Menu', 'menu_update' ), 10, 2 ); add_filter( 'wp_get_nav_menu_items', array( 'CWP_Menu', 'filter_items' ), 10, 1 ); add_filter( 'manage_nav-menus_columns', array( 'CWP_Menu', 'screen_options' ), 20 ); + + add_action( 'wp_nav_menu_item_custom_fields_customize_template', array( 'CWP_Menu', 'customize_menu_fields' ), 10 ); + add_action( 'customize_save_after', array( 'CWP_Menu', 'customize_menu_update' ), 10, 1 ); } /** @@ -69,7 +71,7 @@ private static function register_navs() { * @param WP_Post $menu_item Menu item data object * @return void */ - public static function custom_fields( $item_id, $menu_item ) { + public static function menu_fields( $item_id, $menu_item ) { ?>

+ +

+ +

+ +

+ + + + + + settings() as $setting ) { + if ( $setting instanceof WP_Customize_Nav_Menu_Item_Setting && $setting->check_capabilities() ) { + if ( ! $setting->post_value() ) { + continue; + } + + $unsanitized = $setting->manager->unsanitized_post_values()[ $setting->id ]; + $sanitized = self::sanitize_menu_fields( $unsanitized ); + + foreach ( $sanitized as $field => $value ) { + update_post_meta( $setting->post_id, '_menu_item_' . $field, $value ); + } + } + } + } + + /** + * Sanitizes menu fields & adds defaults if necessary + * + * @since 1.0.0 + * @access public + * @param array $data The menu fields to be sanitized + * @return array The sanitized menu fields + */ + private static function sanitize_menu_fields( $data ) { + return array( + 'icon' => isset( $data['icon'] ) ? + sanitize_text_field( $data['icon'] ) : + self::$field_defaults['icon'], + 'visibility' => isset( $data['visibility'] ) && in_array( $data['visibility'], array( 'always', 'logged-in', 'logged-out' ) ) ? + $data['visibility'] : + self::$field_defaults['visibility'], + 'logout_link' => isset( $data['logout_link'] ) && $data['logout_link'] === '1' || $data['logout_link'] === '0' ? + $data['logout_link'] : + self::$field_defaults['visibility'], + 'link_type' => isset( $data['link_type'] ) && in_array( $data['link_type'], array( 'link', 'header', 'divider', 'text' ) ) ? + $data['link_type'] : + self::$field_defaults['link_type'], + ); + } + /** * Add screen options to Menus page * diff --git a/plugins/construct-wp/models/class-construct-wp-settings.php b/plugins/construct-wp/models/class-construct-wp-settings.php index 5b5a2af..b8c3344 100644 --- a/plugins/construct-wp/models/class-construct-wp-settings.php +++ b/plugins/construct-wp/models/class-construct-wp-settings.php @@ -55,6 +55,7 @@ private static function register_settings() { // TODO footer column count?. // TODO autorun theme classes. // TODO theme support. + // TODO autoload theme textdomain. register_setting( 'cwp_settings', 'cwp_optimize', array( 'type' => 'boolean', diff --git a/plugins/construct-wp/models/class-construct-wp.php b/plugins/construct-wp/models/class-construct-wp.php index 8701ac3..d36a507 100644 --- a/plugins/construct-wp/models/class-construct-wp.php +++ b/plugins/construct-wp/models/class-construct-wp.php @@ -72,6 +72,9 @@ public static function init() { // Include admin styles & scripts. add_action( 'admin_enqueue_scripts', array( 'CWP_Assets', 'admin_enqueue' ) ); + // Include customizer styles & scripts. + add_action( 'customize_controls_enqueue_scripts', array( 'CWP_Assets', 'customizer_enqueue' ) ); + do_action( 'cwp_after_setup' ); self::$loaded = true; diff --git a/plugins/construct-wp/src/js/construct-wp-customizer.js b/plugins/construct-wp/src/js/construct-wp-customizer.js new file mode 100644 index 0000000..c980ff6 --- /dev/null +++ b/plugins/construct-wp/src/js/construct-wp-customizer.js @@ -0,0 +1,79 @@ +( function() { + // Augment each menu item control once it is added and embedded. + wp.customize.control.bind( 'add', ( control ) => { + if ( control.extended( wp.customize.Menus.MenuItemControl ) ) { + control.deferred.embedded.done( () => { + extendControl( control ) + } ) + } + } ) + + /** + * Extend the control with roles information. + * + * @param {wp.customize.Menus.MenuItemControl} control + */ + function extendControl( control ) { + control.iconField = control.container.find( '[name="edit-menu-item-icon"]' ) + control.visibilityField = control.container.find( '[name="edit-menu-item-visibility"]' ) + control.logoutLinkField = control.container.find( '[name="edit-menu-item-logout_link"]' ) + control.linkTypeField = control.container.find( '[name="edit-menu-item-link_type"]' ) + + // Set the initial UI state. + updateControlFields( control ) + + // Update the UI state when the setting changes programmatically. + control.setting.bind( () => { + updateControlFields( control ) + } ) + + // Update the setting when the inputs are modified. + control.iconField.on( 'input', ( e ) => { + setSetting( control.setting, { + icon: e.target.value, + } ) + } ) + control.visibilityField.on( 'change', ( e ) => { + setSetting( control.setting, { + visibility: e.target.value, + } ) + } ) + control.logoutLinkField.on( 'change', ( e ) => { + setSetting( control.setting, { + // eslint-disable-next-line camelcase + logout_link: e.target.checked ? '1' : '0', + } ) + } ) + control.linkTypeField.on( 'change', ( e ) => { + setSetting( control.setting, { + // eslint-disable-next-line camelcase + link_type: e.target.value, + } ) + } ) + } + + /** + * Extend the setting with updated information. + * + * @param {wp.customize.Setting} setting + * @param {string|Array} roles + */ + function setSetting( setting, value ) { + setting.set( { + ..._.clone( setting() ), + ...value, + } ) + } + + /** + * Apply the control's setting value to the control's fields. + * + * @param {wp.customize.Menus.MenuItemControl} control + */ + function updateControlFields( control ) { + control.iconField.val( control.setting().icon ) + control.visibilityField.val( control.setting().visibility ) + control.logoutLinkField.prop( 'checked', control.setting().logout_link === '1' ) + control.linkTypeField.val( control.setting().link_type ) + } +} )() diff --git a/plugins/construct-wp/src/scss/construct-wp-admin.scss b/plugins/construct-wp/src/scss/construct-wp-admin.scss index ad63514..a1cbe0b 100644 --- a/plugins/construct-wp/src/scss/construct-wp-admin.scss +++ b/plugins/construct-wp/src/scss/construct-wp-admin.scss @@ -1,7 +1,7 @@ .menu-item { &.menu-item-depth-0 { - .cwp-link_type { - display: none; + .field-cwp-link_type { + display: none !important; } } } @@ -12,3 +12,15 @@ display: none; } } + +$menu-fields: icon, visibility, logout_link, link_type; + +@each $field in $menu-fields { + .control-section-nav_menu .field-cwp-#{$field} { + display: none; + } + + .control-section-nav_menu.field-cwp-#{$field}-active .field-cwp-#{$field} { + display: block; + } +} diff --git a/yarn.lock b/yarn.lock index 3dd6775..adf7b86 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1290,6 +1290,21 @@ resolved "https://registry.yarnpkg.com/@ilabdev/default/-/default-1.0.0.tgz#b8c178e45ba4a1a5adb618dda2de304eaaaa9fc3" integrity sha512-VH0EerYrpve+s4fseXKIisn8HMxagqvSPlpwRAkTTJFvk+p8wE1eLUDurqi68GPnXVNnYmQlrHOvzZZ1pHy0fQ== +"@ilabdev/scripts@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@ilabdev/scripts/-/scripts-1.0.0.tgz#7fe977b19a593e4ea01d239263308bb38b8f4160" + integrity sha512-+0+S4eQHsV/8ZbLTkjciJPB/NbMw/56hSGZxa6o+BcUjJiHzhhDZlsB6yO77MBSxEpmc9p1Iew4rV4rVYydyXA== + dependencies: + "@ilabdev/utils" "^1.0.0" + eslint "^8.50.0" + gulp-filter "^7.0.0" + gulp-if "^3.0.0" + gulp-plumber "^1.2.1" + gulp-rename "^2.0.0" + gulp-uglify "^3.0.2" + lazypipe "^1.0.2" + rollup "^3.29.4" + "@ilabdev/styles@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@ilabdev/styles/-/styles-1.0.0.tgz#140c74e43348091e3ac00cb940b5a268dc94328d" @@ -8743,6 +8758,13 @@ rimraf@^5.0.5: dependencies: glob "^10.3.7" +rollup@^3.29.4: + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + optionalDependencies: + fsevents "~2.3.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" From 66826e98e14f0992c5feafbfa247defcc3d1e1a3 Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Wed, 11 Oct 2023 13:53:46 +0100 Subject: [PATCH 12/27] Improved logo & white logo fields --- .../construct-wp/languages/construct-wp.pot | 40 ++++++++++++- .../models/class-construct-wp.php | 59 +++++++++++++++---- 2 files changed, 87 insertions(+), 12 deletions(-) diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 647d070..2ce95b5 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-11 10:48+0000\n" +"POT-Creation-Date: 2023-10-11 12:52+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -143,6 +143,42 @@ msgstr "" msgid "Add widgets here to appear in your footer column %d" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:479 +#: plugins/construct-wp/models/class-construct-wp.php:471 +msgid "Logo" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp.php:472 +msgid "This should be your regular, colored logo." +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp.php:480, plugins/construct-wp/models/class-construct-wp.php:485, plugins/construct-wp/models/class-construct-wp.php:514, plugins/construct-wp/models/class-construct-wp.php:519 +msgid "Select logo" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp.php:481, plugins/construct-wp/models/class-construct-wp.php:515 +msgid "Change logo" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp.php:482, plugins/construct-wp/models/class-construct-wp.php:516 +msgid "Remove" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp.php:483, plugins/construct-wp/models/class-construct-wp.php:517 +msgid "Default" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp.php:484, plugins/construct-wp/models/class-construct-wp.php:518 +msgid "No logo selected" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp.php:486, plugins/construct-wp/models/class-construct-wp.php:520 +msgid "Choose logo" +msgstr "" + +#: plugins/construct-wp/models/class-construct-wp.php:505 msgid "White Logo" msgstr "" + +#: plugins/construct-wp/models/class-construct-wp.php:506 +msgid "This should the white version of your logo for placement on colored backgrounds." +msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp.php b/plugins/construct-wp/models/class-construct-wp.php index d36a507..f4f5eb2 100644 --- a/plugins/construct-wp/models/class-construct-wp.php +++ b/plugins/construct-wp/models/class-construct-wp.php @@ -461,25 +461,64 @@ public static function theme_support() { * @return void */ public static function customize_settings( $wp_customize ) { + $custom_logo_args = get_theme_support( 'custom-logo' ); + + $wp_customize->add_control( + new WP_Customize_Cropped_Image_Control( + $wp_customize, + 'custom_logo', + array( + 'label' => __( 'Logo', 'construct-wp' ), + 'description' => '

' . __( 'This should be your regular, colored logo.', 'construct-wp' ) . '

', + 'section' => 'title_tagline', + 'priority' => 10, + 'height' => isset( $custom_logo_args[0]['height'] ) ? $custom_logo_args[0]['height'] : null, + 'width' => isset( $custom_logo_args[0]['width'] ) ? $custom_logo_args[0]['width'] : null, + 'flex_height' => isset( $custom_logo_args[0]['flex-height'] ) ? $custom_logo_args[0]['flex-height'] : null, + 'flex_width' => isset( $custom_logo_args[0]['flex-width'] ) ? $custom_logo_args[0]['flex-width'] : null, + 'button_labels' => array( + 'select' => __( 'Select logo', 'construct-wp' ), + 'change' => __( 'Change logo', 'construct-wp' ), + 'remove' => __( 'Remove', 'construct-wp' ), + 'default' => __( 'Default', 'construct-wp' ), + 'placeholder' => __( 'No logo selected', 'construct-wp' ), + 'frame_title' => __( 'Select logo', 'construct-wp' ), + 'frame_button' => __( 'Choose logo', 'construct-wp' ), + ), + ) + ) + ); + $wp_customize->add_setting( 'custom_white_logo', array( - 'default' => '', - 'type' => 'theme_mod', - 'capability' => 'edit_theme_options', + 'theme_supports' => array( 'custom-logo' ), + 'transport' => 'postMessage', ) ); $wp_customize->add_control( - new WP_Customize_Media_Control( + new WP_Customize_Cropped_Image_Control( $wp_customize, - 'logo', + 'custom_white_logo', array( - 'mime_type' => 'image', - 'label' => __( 'White Logo', 'construct-wp' ), - 'section' => 'title_tagline', - 'settings' => 'custom_white_logo', - 'priority' => 9, + 'label' => __( 'White Logo', 'construct-wp' ), + 'description' => '

' . __( 'This should the white version of your logo for placement on colored backgrounds.', 'construct-wp' ) . '

', + 'section' => 'title_tagline', + 'priority' => 10, + 'height' => isset( $custom_logo_args[0]['height'] ) ? $custom_logo_args[0]['height'] : null, + 'width' => isset( $custom_logo_args[0]['width'] ) ? $custom_logo_args[0]['width'] : null, + 'flex_height' => isset( $custom_logo_args[0]['flex-height'] ) ? $custom_logo_args[0]['flex-height'] : null, + 'flex_width' => isset( $custom_logo_args[0]['flex-width'] ) ? $custom_logo_args[0]['flex-width'] : null, + 'button_labels' => array( + 'select' => __( 'Select logo', 'construct-wp' ), + 'change' => __( 'Change logo', 'construct-wp' ), + 'remove' => __( 'Remove', 'construct-wp' ), + 'default' => __( 'Default', 'construct-wp' ), + 'placeholder' => __( 'No logo selected', 'construct-wp' ), + 'frame_title' => __( 'Select logo', 'construct-wp' ), + 'frame_button' => __( 'Choose logo', 'construct-wp' ), + ), ) ) ); From 7155b23b7c4511f51915dc5996fd9132b01aa7df Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Wed, 11 Oct 2023 14:31:03 +0100 Subject: [PATCH 13/27] Implemented controller enable setting --- .../assets/js/construct-wp-settings.js | 22 +++++-- .../assets/js/construct-wp-settings.js.map | 2 +- .../construct-wp/languages/construct-wp.pot | 42 +++++++------- .../models/class-construct-wp-assets.php | 58 ++++++++++++------- .../models/class-construct-wp-settings.php | 7 ++- .../models/class-construct-wp.php | 3 + .../pages/settings/tabs/general/index.jsx | 16 +++++ 7 files changed, 102 insertions(+), 48 deletions(-) diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js b/plugins/construct-wp/assets/js/construct-wp-settings.js index c63643c..de6b67d 100644 --- a/plugins/construct-wp/assets/js/construct-wp-settings.js +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js @@ -235,7 +235,8 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone isAPILoaded: false, isAPISaving: false, removeAdminBar: true, - restrictAdminAccess: true + restrictAdminAccess: true, + controllers: true }; } componentDidMount() { @@ -246,7 +247,8 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone this.setState({ isAPILoaded: true, removeAdminBar: !!response.cwp_remove_admin_bar, - restrictAdminAccess: !!response.cwp_restrict_admin_access + restrictAdminAccess: !!response.cwp_restrict_admin_access, + controllers: !!response.cwp_controllers }); }); } @@ -278,6 +280,16 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }); }, disabled: this.state.isAPISaving + }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Enable controllers', 'construct-wp'), + help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Enables controllers on the frontend based on the current template file', 'construct-wp'), + checked: this.state.controllers, + onChange: () => { + this.setState({ + controllers: !this.state.controllers + }); + }, + disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { isPrimary: true, isLarge: true, @@ -289,7 +301,8 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone const settings = new wp.api.models.Settings({ /* eslint-disable camelcase */ cwp_remove_admin_bar: this.state.removeAdminBar, - cwp_restrict_admin_access: this.state.restrictAdminAccess + cwp_restrict_admin_access: this.state.restrictAdminAccess, + cwp_controllers: this.state.controllers /* eslint-enable camelcase */ }); @@ -297,7 +310,8 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone this.setState({ isAPISaving: false, removeAdminBar: !!response.cwp_remove_admin_bar, - restrictAdminAccess: !!response.cwp_restrict_admin_access + restrictAdminAccess: !!response.cwp_restrict_admin_access, + controllers: !!response.cwp_controllers }); (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Settings saved!', 'construct-wp'), { type: 'snackbar', diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js.map b/plugins/construct-wp/assets/js/construct-wp-settings.js.map index bc72b63..eb9eab2 100644 --- a/plugins/construct-wp/assets/js/construct-wp-settings.js.map +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js.map @@ -1 +1 @@ -{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n \n \n

{__( 'Remove bloat', 'construct-wp' )}

\n
\n\n \n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n
\n\n \n \n

{__( 'Remove dashboard meta boxes', 'construct-wp' )}

\n
\n\n \n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","label","help","checked","onChange","disabled","isPrimary","isLarge","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","style","marginTop","Card","CardBody","CardHeader","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","value","newState","prototype","hasOwnProperty","call","checkbox","area","item","boxShadow","margin","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n controllers: true,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n controllers: !this.state.controllers,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n cwp_controllers: this.state.controllers,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n \n \n

{__( 'Remove bloat', 'construct-wp' )}

\n
\n\n \n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n
\n\n \n \n

{__( 'Remove dashboard meta boxes', 'construct-wp' )}

\n
\n\n \n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","label","help","checked","onChange","disabled","isPrimary","isLarge","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","style","marginTop","Card","CardBody","CardHeader","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","value","newState","prototype","hasOwnProperty","call","checkbox","area","item","boxShadow","margin","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 2ce95b5..85bee94 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-11 12:52+0000\n" +"POT-Creation-Date: 2023-10-11 13:16+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -76,31 +76,31 @@ msgstr "" msgid "Text" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:166 +#: plugins/construct-wp/models/class-construct-wp-settings.php:171 msgid "ConstructWP Settings" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:167 +#: plugins/construct-wp/models/class-construct-wp-settings.php:172 msgid "ConstructWP" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:178 +#: plugins/construct-wp/models/class-construct-wp-settings.php:183 msgid "ConstructWP Settings - General" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:179 +#: plugins/construct-wp/models/class-construct-wp-settings.php:184 msgid "General" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:187 +#: plugins/construct-wp/models/class-construct-wp-settings.php:192 msgid "ConstructWP Settings - Optimize" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:188 +#: plugins/construct-wp/models/class-construct-wp-settings.php:193 msgid "Optimize" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:248 +#: plugins/construct-wp/models/class-construct-wp-settings.php:253 msgid "Settings" msgstr "" @@ -129,56 +129,56 @@ msgstr "" msgid "Next" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:232 +#: plugins/construct-wp/models/class-construct-wp.php:235 msgid "No feed available" msgstr "" #. translators: %d Footer column number -#: plugins/construct-wp/models/class-construct-wp.php:304 +#: plugins/construct-wp/models/class-construct-wp.php:307 msgid "Footer %d" msgstr "" #. translators: %d Footer column number -#: plugins/construct-wp/models/class-construct-wp.php:310 +#: plugins/construct-wp/models/class-construct-wp.php:313 msgid "Add widgets here to appear in your footer column %d" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:471 +#: plugins/construct-wp/models/class-construct-wp.php:474 msgid "Logo" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:472 +#: plugins/construct-wp/models/class-construct-wp.php:475 msgid "This should be your regular, colored logo." msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:480, plugins/construct-wp/models/class-construct-wp.php:485, plugins/construct-wp/models/class-construct-wp.php:514, plugins/construct-wp/models/class-construct-wp.php:519 +#: plugins/construct-wp/models/class-construct-wp.php:483, plugins/construct-wp/models/class-construct-wp.php:488, plugins/construct-wp/models/class-construct-wp.php:517, plugins/construct-wp/models/class-construct-wp.php:522 msgid "Select logo" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:481, plugins/construct-wp/models/class-construct-wp.php:515 +#: plugins/construct-wp/models/class-construct-wp.php:484, plugins/construct-wp/models/class-construct-wp.php:518 msgid "Change logo" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:482, plugins/construct-wp/models/class-construct-wp.php:516 +#: plugins/construct-wp/models/class-construct-wp.php:485, plugins/construct-wp/models/class-construct-wp.php:519 msgid "Remove" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:483, plugins/construct-wp/models/class-construct-wp.php:517 +#: plugins/construct-wp/models/class-construct-wp.php:486, plugins/construct-wp/models/class-construct-wp.php:520 msgid "Default" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:484, plugins/construct-wp/models/class-construct-wp.php:518 +#: plugins/construct-wp/models/class-construct-wp.php:487, plugins/construct-wp/models/class-construct-wp.php:521 msgid "No logo selected" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:486, plugins/construct-wp/models/class-construct-wp.php:520 +#: plugins/construct-wp/models/class-construct-wp.php:489, plugins/construct-wp/models/class-construct-wp.php:523 msgid "Choose logo" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:505 +#: plugins/construct-wp/models/class-construct-wp.php:508 msgid "White Logo" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:506 +#: plugins/construct-wp/models/class-construct-wp.php:509 msgid "This should the white version of your logo for placement on colored backgrounds." msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp-assets.php b/plugins/construct-wp/models/class-construct-wp-assets.php index c351f00..430fc3d 100644 --- a/plugins/construct-wp/models/class-construct-wp-assets.php +++ b/plugins/construct-wp/models/class-construct-wp-assets.php @@ -13,7 +13,7 @@ class CWP_Assets { /** - * Contains information about the page: + * Contains information about the template: * - Template path * - Controller path * - CSS path @@ -23,7 +23,7 @@ class CWP_Assets { * @access private * @var array */ - private static $page_info = array(); + private static $template_info = array(); /** * Finds & generates the path/URI for assets based on whether they are in the parent or child theme, @@ -60,28 +60,48 @@ public static function final_path( $path, $uri = false ) { } /** - * Includes the templates controller if found. This is called from the `template_include` filter. + * Gathers information about the template: + * - Template path + * - Controller path + * - CSS path + * - JS path * * @since 1.0.0 * @access public * @param string $template The template for the current page * @return string The template for the current page */ - public static function template_controller( $template ) { - global $wp_filesystem; - + public static function get_template_info( $template ) { $template_base = str_replace( trailingslashit( get_stylesheet_directory() ), '', $template ); $template_base = str_replace( trailingslashit( get_template_directory() ), '', $template_base ); $template_base = str_replace( '.php', '', $template_base ); - self::$page_info = array( + self::$template_info = array( 'template' => $template_base . '.php', 'controller' => '/controllers/' . $template_base . '.php', 'css' => '/assets/css/' . $template_base . '.css', 'js' => '/assets/js/' . $template_base . '.js', ); - $controller_path = self::final_path( self::$page_info['controller'], false ); + return $template; + } + + /** + * Includes the templates controller if found. This is called from the `template_include` filter. + * + * @since 1.0.0 + * @access public + * @param string $template The template for the current page + * @return string The template for the current page + */ + public static function template_controller( $template ) { + $setting = boolval( get_option( 'cwp_controllers' ) ); + + if ( ! $setting ) { + return $template; + } + + $controller_path = self::final_path( self::$template_info['controller'], false ); if ( $controller_path ) { include_once $controller_path; @@ -105,8 +125,6 @@ public static function template_controller( $template ) { * @return void */ public static function base_enqueue() { - global $wp_filesystem; - $themes = array_unique( array( get_template(), get_stylesheet(), @@ -118,11 +136,11 @@ public static function base_enqueue() { $script_path = self::final_path( '/assets/js/' . $theme . '.js', false ); $script_uri = self::final_path( '/assets/js/' . $theme . '.js', true ); - if ( $wp_filesystem->exists( $style_path ) ) { + if ( $style_path ) { wp_enqueue_style( $theme, $style_uri ); } - if ( $wp_filesystem->exists( $script_path ) ) { + if ( $script_path ) { wp_enqueue_script( $theme, $script_uri, array(), false, true ); } } @@ -136,19 +154,17 @@ public static function base_enqueue() { * @return void */ public static function template_enqueue() { - global $wp_filesystem; - - $handle = basename( self::$page_info['template'], '.php' ); - $style_path = self::final_path( self::$page_info['css'], false ); - $style_uri = self::final_path( self::$page_info['css'], true ); - $script_path = self::final_path( self::$page_info['js'], false ); - $script_uri = self::final_path( self::$page_info['js'], true ); + $handle = basename( self::$template_info['template'], '.php' ); + $style_path = self::final_path( self::$template_info['css'], false ); + $style_uri = self::final_path( self::$template_info['css'], true ); + $script_path = self::final_path( self::$template_info['js'], false ); + $script_uri = self::final_path( self::$template_info['js'], true ); - if ( $wp_filesystem->exists( $style_path ) ) { + if ( $style_path ) { wp_enqueue_style( $handle, $style_uri ); } - if ( $wp_filesystem->exists( $script_path ) ) { + if ( $script_path ) { wp_enqueue_script( $handle, $script_uri, array(), false, true ); } } diff --git a/plugins/construct-wp/models/class-construct-wp-settings.php b/plugins/construct-wp/models/class-construct-wp-settings.php index b8c3344..8966608 100644 --- a/plugins/construct-wp/models/class-construct-wp-settings.php +++ b/plugins/construct-wp/models/class-construct-wp-settings.php @@ -47,7 +47,12 @@ private static function register_settings() { 'default' => true, ) ); - // TODO controller enable. + register_setting( 'cwp_settings', 'cwp_controllers', array( + 'type' => 'boolean', + 'show_in_rest' => true, + 'default' => true, + ) ); + // TODO base stylesheet enable. // TODO base js enable. // TODO template stylesheet enable. diff --git a/plugins/construct-wp/models/class-construct-wp.php b/plugins/construct-wp/models/class-construct-wp.php index f4f5eb2..29a194f 100644 --- a/plugins/construct-wp/models/class-construct-wp.php +++ b/plugins/construct-wp/models/class-construct-wp.php @@ -60,6 +60,9 @@ public static function init() { // Restrict access to admin area. self::restrict_admin_access(); + // Gets path info for the template for use throughout the system. + add_filter( 'template_include', array( 'CWP_Assets', 'get_template_info' ), 1 ); + // Include the current templates corresponding controller. add_filter( 'template_include', array( 'CWP_Assets', 'template_controller' ), 1 ); diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx index 9410108..e01df0b 100644 --- a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx +++ b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx @@ -26,6 +26,7 @@ class GeneralTab extends Component { isAPISaving: false, removeAdminBar: true, restrictAdminAccess: true, + controllers: true, } } @@ -39,6 +40,7 @@ class GeneralTab extends Component { isAPILoaded: true, removeAdminBar: !!response.cwp_remove_admin_bar, restrictAdminAccess: !!response.cwp_restrict_admin_access, + controllers: !!response.cwp_controllers, } ) } ) } @@ -88,6 +90,18 @@ class GeneralTab extends Component { disabled={this.state.isAPISaving} /> + { + this.setState( { + controllers: !this.state.controllers, + } ) + }} + disabled={this.state.isAPISaving} + /> + \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n \n \n

{__( 'Remove bloat', 'construct-wp' )}

\n
\n\n \n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n
\n\n \n \n

{__( 'Remove dashboard meta boxes', 'construct-wp' )}

\n
\n\n \n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","label","help","checked","onChange","disabled","isPrimary","isLarge","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","style","marginTop","Card","CardBody","CardHeader","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","value","newState","prototype","hasOwnProperty","call","checkbox","area","item","boxShadow","margin","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n controllers: true,\n baseStyles: true,\n baseScripts: true,\n templateStyles: true,\n templateScripts: true,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n controllers: !this.state.controllers,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/theme-name.css'\n ) )}\n checked={this.state.baseStyles}\n onChange={() => {\n this.setState( {\n baseStyles: !this.state.baseStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/theme-name.js'\n ) )}\n checked={this.state.baseScripts}\n onChange={() => {\n this.setState( {\n baseScripts: !this.state.baseScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/templates/template-name.css'\n ) )}\n checked={this.state.templateStyles}\n onChange={() => {\n this.setState( {\n templateStyles: !this.state.templateStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/templates/template-name.js'\n ) )}\n checked={this.state.templateScripts}\n onChange={() => {\n this.setState( {\n templateScripts: !this.state.templateScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n cwp_controllers: this.state.controllers,\n cwp_base_styles: this.state.baseStyles,\n cwp_base_scripts: this.state.baseScripts,\n cwp_template_styles: this.state.templateStyles,\n cwp_template_scripts: this.state.templateScripts,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n \n \n

{__( 'Remove bloat', 'construct-wp' )}

\n
\n\n \n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n
\n\n \n \n

{__( 'Remove dashboard meta boxes', 'construct-wp' )}

\n
\n\n \n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","baseStyles","baseScripts","templateStyles","templateScripts","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","cwp_base_styles","cwp_base_scripts","cwp_template_styles","cwp_template_scripts","label","help","checked","onChange","disabled","isPrimary","isLarge","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","style","marginTop","Card","CardBody","CardHeader","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","value","newState","prototype","hasOwnProperty","call","checkbox","area","item","boxShadow","margin","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 85bee94..d467a0f 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-11 13:16+0000\n" +"POT-Creation-Date: 2023-10-11 14:20+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -76,31 +76,31 @@ msgstr "" msgid "Text" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:171 +#: plugins/construct-wp/models/class-construct-wp-settings.php:191 msgid "ConstructWP Settings" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:172 +#: plugins/construct-wp/models/class-construct-wp-settings.php:192 msgid "ConstructWP" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:183 +#: plugins/construct-wp/models/class-construct-wp-settings.php:203 msgid "ConstructWP Settings - General" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:184 +#: plugins/construct-wp/models/class-construct-wp-settings.php:204 msgid "General" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:192 +#: plugins/construct-wp/models/class-construct-wp-settings.php:212 msgid "ConstructWP Settings - Optimize" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:193 +#: plugins/construct-wp/models/class-construct-wp-settings.php:213 msgid "Optimize" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:253 +#: plugins/construct-wp/models/class-construct-wp-settings.php:273 msgid "Settings" msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp-assets.php b/plugins/construct-wp/models/class-construct-wp-assets.php index 430fc3d..ccc14cd 100644 --- a/plugins/construct-wp/models/class-construct-wp-assets.php +++ b/plugins/construct-wp/models/class-construct-wp-assets.php @@ -125,23 +125,35 @@ public static function template_controller( $template ) { * @return void */ public static function base_enqueue() { + $styles_setting = boolval( get_option( 'cwp_base_styles' ) ); + $scripts_setting = boolval( get_option( 'cwp_base_scripts' ) ); + + if ( ! $styles_setting && ! $scripts_setting ) { + return; + } + $themes = array_unique( array( get_template(), get_stylesheet(), ) ); foreach ( $themes as $theme ) { - $style_path = self::final_path( '/assets/css/' . $theme . '.css', false ); - $style_uri = self::final_path( '/assets/css/' . $theme . '.css', true ); - $script_path = self::final_path( '/assets/js/' . $theme . '.js', false ); - $script_uri = self::final_path( '/assets/js/' . $theme . '.js', true ); + if ( $styles_setting ) { + $style_path = self::final_path( '/assets/css/' . $theme . '.css', false ); + $style_uri = self::final_path( '/assets/css/' . $theme . '.css', true ); - if ( $style_path ) { - wp_enqueue_style( $theme, $style_uri ); + if ( $style_path ) { + wp_enqueue_style( $theme, $style_uri ); + } } - if ( $script_path ) { - wp_enqueue_script( $theme, $script_uri, array(), false, true ); + if ( $scripts_setting ) { + $script_path = self::final_path( '/assets/js/' . $theme . '.js', false ); + $script_uri = self::final_path( '/assets/js/' . $theme . '.js', true ); + + if ( $script_path ) { + wp_enqueue_script( $theme, $script_uri, array(), false, true ); + } } } } @@ -154,18 +166,31 @@ public static function base_enqueue() { * @return void */ public static function template_enqueue() { - $handle = basename( self::$template_info['template'], '.php' ); - $style_path = self::final_path( self::$template_info['css'], false ); - $style_uri = self::final_path( self::$template_info['css'], true ); - $script_path = self::final_path( self::$template_info['js'], false ); - $script_uri = self::final_path( self::$template_info['js'], true ); - - if ( $style_path ) { - wp_enqueue_style( $handle, $style_uri ); + $styles_setting = boolval( get_option( 'cwp_template_styles' ) ); + $scripts_setting = boolval( get_option( 'cwp_template_scripts' ) ); + + if ( ! $styles_setting && ! $scripts_setting ) { + return; } - if ( $script_path ) { - wp_enqueue_script( $handle, $script_uri, array(), false, true ); + $handle = basename( self::$template_info['template'], '.php' ); + + if ( $styles_setting ) { + $style_path = self::final_path( self::$template_info['css'], false ); + $style_uri = self::final_path( self::$template_info['css'], true ); + + if ( $style_path ) { + wp_enqueue_style( $handle, $style_uri ); + } + } + + if ( $scripts_setting ) { + $script_path = self::final_path( self::$template_info['js'], false ); + $script_uri = self::final_path( self::$template_info['js'], true ); + + if ( $script_path ) { + wp_enqueue_script( $handle, $script_uri, array(), false, true ); + } } } diff --git a/plugins/construct-wp/models/class-construct-wp-settings.php b/plugins/construct-wp/models/class-construct-wp-settings.php index 8966608..8541fc9 100644 --- a/plugins/construct-wp/models/class-construct-wp-settings.php +++ b/plugins/construct-wp/models/class-construct-wp-settings.php @@ -53,10 +53,30 @@ private static function register_settings() { 'default' => true, ) ); - // TODO base stylesheet enable. - // TODO base js enable. - // TODO template stylesheet enable. - // TODO template js enable. + register_setting( 'cwp_settings', 'cwp_base_styles', array( + 'type' => 'boolean', + 'show_in_rest' => true, + 'default' => true, + ) ); + + register_setting( 'cwp_settings', 'cwp_base_scripts', array( + 'type' => 'boolean', + 'show_in_rest' => true, + 'default' => true, + ) ); + + register_setting( 'cwp_settings', 'cwp_template_styles', array( + 'type' => 'boolean', + 'show_in_rest' => true, + 'default' => true, + ) ); + + register_setting( 'cwp_settings', 'cwp_template_scripts', array( + 'type' => 'boolean', + 'show_in_rest' => true, + 'default' => true, + ) ); + // TODO footer column count?. // TODO autorun theme classes. // TODO theme support. diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx index e01df0b..70e2844 100644 --- a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx +++ b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx @@ -27,6 +27,10 @@ class GeneralTab extends Component { removeAdminBar: true, restrictAdminAccess: true, controllers: true, + baseStyles: true, + baseScripts: true, + templateStyles: true, + templateScripts: true, } } @@ -41,6 +45,10 @@ class GeneralTab extends Component { removeAdminBar: !!response.cwp_remove_admin_bar, restrictAdminAccess: !!response.cwp_restrict_admin_access, controllers: !!response.cwp_controllers, + baseStyles: !!response.cwp_base_styles, + baseScripts: !!response.cwp_base_scripts, + templateStyles: !!response.cwp_template_styles, + templateScripts: !!response.cwp_template_scripts, } ) } ) } @@ -102,6 +110,66 @@ class GeneralTab extends Component { disabled={this.state.isAPISaving} /> + /assets/css/theme-name.css' + ) )} + checked={this.state.baseStyles} + onChange={() => { + this.setState( { + baseStyles: !this.state.baseStyles, + } ) + }} + disabled={this.state.isAPISaving} + /> + + /assets/js/theme-name.js' + ) )} + checked={this.state.baseScripts} + onChange={() => { + this.setState( { + baseScripts: !this.state.baseScripts, + } ) + }} + disabled={this.state.isAPISaving} + /> + + /assets/css/templates/template-name.css' + ) )} + checked={this.state.templateStyles} + onChange={() => { + this.setState( { + templateStyles: !this.state.templateStyles, + } ) + }} + disabled={this.state.isAPISaving} + /> + + /assets/js/templates/template-name.js' + ) )} + checked={this.state.templateScripts} + onChange={() => { + this.setState( { + templateScripts: !this.state.templateScripts, + } ) + }} + disabled={this.state.isAPISaving} + /> + \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n Card,\n CardBody,\n CardHeader,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n \n \n

{__( 'Remove bloat', 'construct-wp' )}

\n
\n\n \n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n
\n\n \n \n

{__( 'Remove dashboard meta boxes', 'construct-wp' )}

\n
\n\n \n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n style={{\n marginTop: '1.5rem',\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","baseStyles","baseScripts","templateStyles","templateScripts","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","cwp_base_styles","cwp_base_scripts","cwp_template_styles","cwp_template_scripts","label","help","checked","onChange","disabled","isPrimary","isLarge","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","style","marginTop","Card","CardBody","CardHeader","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","value","newState","prototype","hasOwnProperty","call","checkbox","area","item","boxShadow","margin","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n TextControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n controllers: true,\n baseStyles: true,\n baseScripts: true,\n templateStyles: true,\n templateScripts: true,\n footerColumnCount: 3,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n controllers: !this.state.controllers,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/theme-name.css'\n ) )}\n checked={this.state.baseStyles}\n onChange={() => {\n this.setState( {\n baseStyles: !this.state.baseStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/theme-name.js'\n ) )}\n checked={this.state.baseScripts}\n onChange={() => {\n this.setState( {\n baseScripts: !this.state.baseScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/templates/template-name.css'\n ) )}\n checked={this.state.templateStyles}\n onChange={() => {\n this.setState( {\n templateStyles: !this.state.templateStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/templates/template-name.js'\n ) )}\n checked={this.state.templateScripts}\n onChange={() => {\n this.setState( {\n templateScripts: !this.state.templateScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n footerColumnCount: value,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n cwp_controllers: this.state.controllers,\n cwp_base_styles: this.state.baseStyles,\n cwp_base_scripts: this.state.baseScripts,\n cwp_template_styles: this.state.templateStyles,\n cwp_template_scripts: this.state.templateScripts,\n cwp_footer_column_count: this.state.footerColumnCount,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n

Remove bloat

\n\n
\n\n
\n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n\n
\n
{__( 'Dashboard meta boxes', 'construct-wp' )}
\n\n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","TextControl","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","baseStyles","baseScripts","templateStyles","templateScripts","footerColumnCount","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","cwp_base_styles","cwp_base_scripts","cwp_template_styles","cwp_template_scripts","cwp_footer_column_count","label","help","checked","onChange","disabled","value","variant","isBusy","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","newState","prototype","hasOwnProperty","call","checkbox","area","item","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx index 72192a3..c33b8ad 100644 --- a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx +++ b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx @@ -187,9 +187,10 @@ class GeneralTab extends Component { /> diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx index db6feef..ef7f545 100644 --- a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx +++ b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx @@ -3,9 +3,6 @@ import { } from '@wordpress/element' import { Button, - Card, - CardBody, - CardHeader, CheckboxControl, ToggleControl, } from '@wordpress/components' @@ -119,63 +116,50 @@ class OptimizeTab extends Component { {this.state.optimize && ( <> - - -

{__( 'Remove bloat', 'construct-wp' )}

-
- - -
{__( 'WordPress', 'construct-wp' )}
- - {this.selectAll( 'wpBloat' )} -
- {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )} - {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )} - {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )} - {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )} - {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )} - {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )} - {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )} - {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )} - {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )} - {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )} -
-
-
- - - -

{__( 'Remove dashboard meta boxes', 'construct-wp' )}

-
- - - {this.selectAll( 'dashboardMeta' )} - -
- {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )} - {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )} - {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )} - {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )} - {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )} - {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )} -
-
-
+

Remove bloat

+ +
+ +
+
{__( 'WordPress', 'construct-wp' )}
+ + {this.selectAll( 'wpBloat' )} +
+ {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )} + {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )} + {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )} + {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )} + {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )} + {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )} + {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )} + {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )} + {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )} + {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )} +
+
+ +
+
{__( 'Dashboard meta boxes', 'construct-wp' )}
+ + {this.selectAll( 'dashboardMeta' )} + +
+ {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )} + {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )} + {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )} + {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )} + {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )} + {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )} +
+
)} diff --git a/plugins/construct-wp/src/scss/construct-wp-settings.scss b/plugins/construct-wp/src/scss/construct-wp-settings.scss index 97093e8..33fcb36 100644 --- a/plugins/construct-wp/src/scss/construct-wp-settings.scss +++ b/plugins/construct-wp/src/scss/construct-wp-settings.scss @@ -126,6 +126,39 @@ body { .construct-wp__header { padding: 1rem 1.5rem 0; + + .construct-wp__title { + display: flex; + flex-wrap: wrap; + align-items: center; + } + + .construct-wp__logo { + max-height: 50px; + margin-right: 1rem; + } + + .construct-wp__version-badge { + display: inline-block; + padding: .35em .65em; + font-size: .9rem; + line-height: 1; + color: var(--wp-components-color-accent-inverted); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: var(--wp-components-color-accent); + border: 1px solid var(--wp-components-color-accent); + /* stylelint-disable-next-line property-disallowed-list */ + border-radius: .375rem; + } + + .components-tab-panel__tabs { + margin-top: 1rem; + } + .components-tab-panel__tabs-item { + padding-top: 0; + } } .construct-wp__main { @@ -159,33 +192,6 @@ body { } } - .construct-wp__logo { - max-height: 50px; - margin-right: 1rem; - } - - .components-tab-panel__tabs-item { - padding-top: 0; - } - - .components-tab-panel__tab-content { - display: none; - } - - .components-base-control__help { - color: rgb(var(--wp-components-color-accent-foreground--to-rgb), .675); - } - - .construct-wp__checklist { - columns: auto 2; - column-gap: 2rem; - - .components-base-control__field { - margin-bottom: .5rem; - } - } - - .construct-wp__loading-spinner { display: inline-block; width: 2rem; @@ -200,25 +206,64 @@ body { animation: .75s linear infinite spinner-border; } - .construct-wp__title { - display: flex; - flex-wrap: wrap; - align-items: center; + .construct-wp__checklist { + columns: auto 2; + column-gap: 2rem; + + .components-base-control__field { + margin-bottom: .5rem; + } } - .construct-wp__version-badge { - display: inline-block; - padding: .35em .65em; - font-size: .9rem; - line-height: 1; - color: var(--wp-components-color-accent-inverted); - text-align: center; - white-space: nowrap; - vertical-align: baseline; - background-color: var(--wp-components-color-accent); - border: 1px solid var(--wp-components-color-accent); - /* stylelint-disable-next-line property-disallowed-list */ - border-radius: .375rem; + .construct-wp__section { + margin-bottom: 1.5rem; + + &:last-of-type { + margin-bottom: 0; + } + } + + .components-base-control { + .components-base-control__label { + font-weight: 400; + text-transform: none; + } + + .components-text-control__input { + &, + [type="color"], + [type="date"], + [type="datetime-local"], + [type="datetime"], + [type="email"], + [type="month"], + [type="number"], + [type="password"], + [type="tel"], + [type="text"], + [type="time"], + [type="url"], + [type="week"] { + display: block; + max-width: 500px; + @include border-radius($border-radius); + } + } + + .components-base-control__help { + color: rgb(var(--wp-components-color-accent-foreground--to-rgb), .675); + } + + &:last-of-type { + .components-base-control__help { + margin-bottom: 0; + } + } + } + + .components-submit-button { + margin-top: 1.5rem; + margin-bottom: 1.5rem; } .construct-wp__notices { From dff3c85f67ef83f3ca6483e0b986a41225227795 Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Wed, 11 Oct 2023 21:04:09 +0100 Subject: [PATCH 18/27] Implemented JS translation functionality --- .gulpconfig.js | 146 +++++++++---- .vscode/bookmarks.json | 2 +- package.json | 5 + patches/wp-pot+1.10.2.patch | 13 ++ .../assets/js/construct-wp-gutenberg.js | 7 +- .../assets/js/construct-wp-gutenberg.js.map | 2 +- .../assets/js/construct-wp-settings.js | 83 +++---- .../assets/js/construct-wp-settings.js.map | 2 +- .../construct-wp/languages/construct-wp.pot | 84 ++++---- .../languages/js/construct-wp.pot | 203 ++++++++++++++++++ .../models/class-construct-wp-assets.php | 3 + .../models/class-construct-wp-gutenberg.php | 2 + .../models/class-construct-wp-settings.php | 10 +- .../models/class-construct-wp.php | 2 +- .../pages/settings/tabs/general/index.jsx | 6 + .../src/gutenberg/panels/email/index.jsx | 2 +- yarn.lock | 143 +++++++++++- 17 files changed, 583 insertions(+), 132 deletions(-) create mode 100644 patches/wp-pot+1.10.2.patch create mode 100644 plugins/construct-wp/languages/js/construct-wp.pot diff --git a/.gulpconfig.js b/.gulpconfig.js index 93c10b1..064dc65 100644 --- a/.gulpconfig.js +++ b/.gulpconfig.js @@ -1,4 +1,5 @@ const pkg = require( './package.json' ) +const TerserPlugin = require( 'terser-webpack-plugin' ) const areas = { constructWp: { path: './plugins/construct-wp', @@ -8,6 +9,40 @@ const areas = { }, } +const translatePipes = { + checktextdomain: { + text_domain: 'text-domain', + keywords: [ + '__:1,2d', + '_e:1,2d', + '_x:1,2c,3d', + '_ex:1,2c,3d', + '_n:1,2,4d', + '_nx:1,2,4c,5d', + '_n_noop:1,2,3d', + '_nx_noop:1,2,3c,4d', + 'esc_html__:1,2d', + 'esc_html_e:1,2d', + 'esc_html_x:1,2c,3d', + 'esc_attr__:1,2d', + 'esc_attr_e:1,2d', + 'esc_attr_x:1,2c,3d', + ], + report_missing: true, + report_success: false, + report_variable_domain: true, + correct_domain: true, + create_report_file: false, + force: false, + }, + pot: { + domain: 'text-domain', + package: 'Package Name', + team: `${pkg.author.name} <${pkg.author.email}>`, + lastTranslator: `${pkg.author.name} <${pkg.author.email}>`, + }, +} + module.exports = { clean: { process: true, @@ -15,7 +50,6 @@ module.exports = { paths: [ `${areas.constructWp.path}/assets`, `${areas.constructWp.path}/dist`, - `${areas.constructWp.path}/languages`, ], pipes: { del: { @@ -278,7 +312,9 @@ module.exports = { }, ], ], - plugins: [], + plugins: [ + '@automattic/babel-plugin-preserve-i18n', + ], }, }, }, @@ -287,6 +323,40 @@ module.exports = { resolve: { extensions: ['.js', '.jsx', '.json'], }, + optimization: { + minimizer: [ + new TerserPlugin( { + parallel: true, + terserOptions: { + output: { + comments: /translators:/i, + }, + compress: { + passes: 2, + }, + mangle: { + reserved: [ + '__', + '_e', + '_x', + '_ex', + '_n', + '_nx', + '_n_noop', + '_nx_noop', + 'esc_html__', + 'esc_html_e', + 'esc_html_x', + 'esc_attr__', + 'esc_attr_e', + 'esc_attr_x', + ], + }, + }, + extractComments: false, + } ), + ], + }, devtool: process.env.NODE_ENV === 'development' ? 'source-map' : false, mode: process.env.NODE_ENV === 'development' ? 'development' : 'production', }, @@ -315,44 +385,48 @@ module.exports = { allowEmpty: true, }, dest: {}, + checktextdomain: { + ...translatePipes.checktextdomain, + text_domain: areas.constructWp.name, + }, + pot: { + ...translatePipes.pot, + domain: areas.constructWp.name, + package: areas.constructWp.title, + relativeTo: 'plugins/construct-wp', + }, }, }, - ], - pipes: { - checktextdomain: { - text_domain: areas.constructWp.name, - keywords: [ - '__:1,2d', - '_e:1,2d', - '_x:1,2c,3d', - '_ex:1,2c,3d', - '_n:1,2,4d', - '_nx:1,2,4c,5d', - '_n_noop:1,2,3d', - '_nx_noop:1,2,3c,4d', - 'esc_html__:1,2d', - 'esc_html_e:1,2d', - 'esc_html_x:1,2c,3d', - 'esc_attr__:1,2d', - 'esc_attr_e:1,2d', - 'esc_attr_x:1,2c,3d', - ], - report_missing: true, - report_success: false, - report_variable_domain: true, - correct_domain: true, - create_report_file: false, - force: false, - }, - pot: { - domain: areas.constructWp.name, - package: areas.constructWp.title, - lastTranslator: `${pkg.author.name} <${pkg.author.email}>`, - headers: { - 'Language-Team': `${pkg.author.name} <${pkg.author.email}>`, + { + paths: { + src: `${areas.constructWp.path}/assets/js/**/*.js`, + watch: `${areas.constructWp.path}/assets/js/**/*.js`, + dest: `${areas.constructWp.path}/languages/js/${areas.constructWp.name}.pot`, + }, + pipes: { + // Put any pipe overrides here + src: { + allowEmpty: true, + }, + dest: {}, + checktextdomain: { + ...translatePipes.checktextdomain, + text_domain: areas.constructWp.name, + }, + pot: { + ...translatePipes.pot, + domain: areas.constructWp.name, + package: areas.constructWp.title, + relativeTo: 'plugins/construct-wp', + parser: 'js', + parserOptions: { + ecmaVersion: 9, + }, + }, }, }, - }, + ], + pipes: translatePipes, }, browsersync: { watch: true, diff --git a/.vscode/bookmarks.json b/.vscode/bookmarks.json index cd616ef..e717fab 100644 --- a/.vscode/bookmarks.json +++ b/.vscode/bookmarks.json @@ -4,7 +4,7 @@ "path": ".gulpconfig.js", "bookmarks": [ { - "line": 6, + "line": 7, "column": 18, "label": "Version number" } diff --git a/package.json b/package.json index 7a69746..52502a6 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ }, "main": "index.js", "scripts": { + "postinstall": "patch-package", "start": "gulp", "build": "gulp build", "watch": "gulp watch", @@ -44,10 +45,13 @@ "@wordpress/notices": "^4.11.0", "@wordpress/plugins": "^6.11.0", "bootstrap": "^5.3.2", + "patch-package": "^8.0.0", + "postinstall-postinstall": "^2.1.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { + "@automattic/babel-plugin-preserve-i18n": "^1.0.0", "@babel/core": "^7.23.0", "@babel/preset-env": "^7.22.20", "@babel/preset-react": "^7.22.15", @@ -75,6 +79,7 @@ "stylelint": "^15.10.3", "stylelint-config-twbs-bootstrap": "^11.0.1", "stylelint-stylistic": "^0.4.3", + "terser-webpack-plugin": "^5.3.9", "webpack": "^5.88.2" } } diff --git a/patches/wp-pot+1.10.2.patch b/patches/wp-pot+1.10.2.patch new file mode 100644 index 0000000..6c7787e --- /dev/null +++ b/patches/wp-pot+1.10.2.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/wp-pot/src/parsers/js-parser.js b/node_modules/wp-pot/src/parsers/js-parser.js +index 1762ed2..5e0f804 100644 +--- a/node_modules/wp-pot/src/parsers/js-parser.js ++++ b/node_modules/wp-pot/src/parsers/js-parser.js +@@ -147,7 +147,7 @@ class JSParser { + * @return {string} + */ + getDomain (translationNode) { +- if (!translationNode.arguments.length) { ++ if (!translationNode.arguments || !translationNode.arguments.length) { + return ''; + } + diff --git a/plugins/construct-wp/assets/js/construct-wp-gutenberg.js b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js index 80a3503..35c1778 100644 --- a/plugins/construct-wp/assets/js/construct-wp-gutenberg.js +++ b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js @@ -21,6 +21,7 @@ __webpack_require__.r(__webpack_exports__); +const __ = _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__; function EmailPanel() { const postType = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.select)('core/editor').getCurrentPostType(); if (postType !== 'cwp_email') { @@ -38,10 +39,10 @@ function EmailPanel() { } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)('core/editor', [slug]); return wp.element.createElement(_wordpress_edit_post__WEBPACK_IMPORTED_MODULE_0__.PluginDocumentSettingPanel, { name: "ilab-restrict-access-sidebar", - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Permalink', 'lancashire-textile-gallery') + title: __('Permalink', 'construct-wp') }, wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.TextControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Set the email permalink', 'construct-wp'), - help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('This is used as a reference for this email template. This can be automatically generated on creation.', 'construct-wp'), + label: __('Set the email permalink', 'construct-wp'), + help: __('This is used as a reference for this email template. This can be automatically generated on creation.', 'construct-wp'), type: "text", value: slug, onChange: value => editPost({ diff --git a/plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map index b2273c5..b777413 100644 --- a/plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map +++ b/plugins/construct-wp/assets/js/construct-wp-gutenberg.js.map @@ -1 +1 @@ -{"version":3,"file":"construct-wp-gutenberg.js","mappings":";;;;;;;;;;;;;;;;;;;AAE6B;AAKL;AAGM;AAGN;AAExB,SAASM,UAAUA,CAAA,EAAG;EAClB,MAAMC,QAAQ,GAAGN,uDAAM,CAAE,aAAc,CAAC,CAACO,kBAAkB,CAAC,CAAC;EAE7D,IAAKD,QAAQ,KAAK,WAAW,EAAG;IAC5B,OAAO,IAAI;EACf;EAEA,MAAM;IAAEE;EAAK,CAAC,GAAGP,0DAAS,CAAID,MAAM,IAAM;IACtC,OAAO;MACHQ,IAAI,EAAER,MAAM,CAAE,aAAc,CAAC,CAACS,iBAAiB,CAAC;IACpD,CAAC;EACL,CAAE,CAAC;EAEH,MAAM;IAAEC;EAAS,CAAC,GAAGR,4DAAW,CAAE,aAAa,EAAE,CAACM,IAAI,CAAE,CAAC;EAEzD,OACIG,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACd,4EAA0B;IACvBe,IAAI,EAAC,8BAA8B;IACnCC,KAAK,EAAEX,mDAAE,CAAE,WAAW,EAAE,4BAA6B;EAAE,GAEvDO,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACV,8DAAW;IACRa,KAAK,EAAEZ,mDAAE,CAAE,yBAAyB,EAAE,cAAe,CAAE;IACvDa,IAAI,EAAEb,mDAAE,CAAE,uGAAuG,EAAE,cAAe,CAAE;IACpIc,IAAI,EAAC,MAAM;IACXC,KAAK,EAAGX,IAAM;IACdY,QAAQ,EAAKD,KAAK,IAAMT,QAAQ,CAAE;MAAEF,IAAI,EAAEW;IAAM,CAAE,CAAG;IACrDE,QAAQ;EAAA,CACX,CACuB,CAAC;AAErC;AAEA,+DAAe;EACXP,IAAI,EAAE,OAAO;EACbQ,OAAO,EAAE;IACLC,IAAI,EAAE,EAAE;IACRC,MAAM,EAAEnB;EACZ;AACJ,CAAC;;;;;;;;;;;;;;ACrDkD;AAEnB;AAEhC,MAAMqB,MAAM,GAAG,CACXrB,8CAAU,CACb;AAEDqB,MAAM,CAACC,OAAO,CAAIC,KAAK,IAAM;EACzBH,kEAAc,QAAAI,MAAA,CAASD,KAAK,CAACd,IAAI,aAAUc,KAAK,CAACN,OAAQ,CAAC;AAC9D,CAAE,CAAC;AAEH,+DAAeI,MAAM;;;;;;;;;;ACZrB;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/panels/email/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/panels/index.js","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.editPost\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.plugins\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-gutenberg.js"],"sourcesContent":["import {\n PluginDocumentSettingPanel,\n} from '@wordpress/edit-post'\nimport {\n select,\n useSelect,\n useDispatch,\n} from '@wordpress/data'\nimport {\n TextControl,\n} from '@wordpress/components'\nimport {\n __,\n} from '@wordpress/i18n'\n\nfunction EmailPanel() {\n const postType = select( 'core/editor' ).getCurrentPostType()\n\n if ( postType !== 'cwp_email' ) {\n return null\n }\n\n const { slug } = useSelect( ( select ) => {\n return {\n slug: select( 'core/editor' ).getEditedPostSlug(),\n }\n } )\n\n const { editPost } = useDispatch( 'core/editor', [slug] )\n\n return (\n \n editPost( { slug: value } ) }\n required\n />\n \n )\n}\n\nexport default {\n name: 'email',\n options: {\n icon: '',\n render: EmailPanel,\n },\n}\n","import { registerPlugin } from '@wordpress/plugins'\n\nimport EmailPanel from './email'\n\nconst panels = [\n EmailPanel,\n]\n\npanels.forEach( ( panel ) => {\n registerPlugin( `cwp-${panel.name}-panel`, panel.options )\n} )\n\nexport default panels\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.editPost;","module.exports = wp.i18n;","module.exports = wp.plugins;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './panels'\n"],"names":["PluginDocumentSettingPanel","select","useSelect","useDispatch","TextControl","__","EmailPanel","postType","getCurrentPostType","slug","getEditedPostSlug","editPost","wp","element","createElement","name","title","label","help","type","value","onChange","required","options","icon","render","registerPlugin","panels","forEach","panel","concat"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"construct-wp-gutenberg.js","mappings":";;;;;;;;;;;;;;;;;;;AAE6B;AAKL;AAGM;AAGN;AAAA,MAAAK,EAAA,GAAAC,+CAAA;AAExB,SAASC,UAAUA,CAAA,EAAG;EAClB,MAAMC,QAAQ,GAAGP,uDAAM,CAAE,aAAc,CAAC,CAACQ,kBAAkB,CAAC,CAAC;EAE7D,IAAKD,QAAQ,KAAK,WAAW,EAAG;IAC5B,OAAO,IAAI;EACf;EAEA,MAAM;IAAEE;EAAK,CAAC,GAAGR,0DAAS,CAAID,MAAM,IAAM;IACtC,OAAO;MACHS,IAAI,EAAET,MAAM,CAAE,aAAc,CAAC,CAACU,iBAAiB,CAAC;IACpD,CAAC;EACL,CAAE,CAAC;EAEH,MAAM;IAAEC;EAAS,CAAC,GAAGT,4DAAW,CAAE,aAAa,EAAE,CAACO,IAAI,CAAE,CAAC;EAEzD,OACIG,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACf,4EAA0B;IACvBgB,IAAI,EAAC,8BAA8B;IACnCC,KAAK,EAAEZ,EAAE,CAAE,WAAW,EAAE,cAAe;EAAE,GAEzCQ,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACX,8DAAW;IACRc,KAAK,EAAEb,EAAE,CAAE,yBAAyB,EAAE,cAAe,CAAE;IACvDc,IAAI,EAAEd,EAAE,CAAE,uGAAuG,EAAE,cAAe,CAAE;IACpIe,IAAI,EAAC,MAAM;IACXC,KAAK,EAAGX,IAAM;IACdY,QAAQ,EAAKD,KAAK,IAAMT,QAAQ,CAAE;MAAEF,IAAI,EAAEW;IAAM,CAAE,CAAG;IACrDE,QAAQ;EAAA,CACX,CACuB,CAAC;AAErC;AAEA,+DAAe;EACXP,IAAI,EAAE,OAAO;EACbQ,OAAO,EAAE;IACLC,IAAI,EAAE,EAAE;IACRC,MAAM,EAAEnB;EACZ;AACJ,CAAC;;;;;;;;;;;;;;ACrDkD;AAEnB;AAEhC,MAAMqB,MAAM,GAAG,CACXrB,8CAAU,CACb;AAEDqB,MAAM,CAACC,OAAO,CAAIC,KAAK,IAAM;EACzBH,kEAAc,QAAAI,MAAA,CAASD,KAAK,CAACd,IAAI,aAAUc,KAAK,CAACN,OAAQ,CAAC;AAC9D,CAAE,CAAC;AAEH,+DAAeI,MAAM;;;;;;;;;;ACZrB;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/panels/email/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/panels/index.js","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.editPost\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.plugins\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-gutenberg.js"],"sourcesContent":["import {\n PluginDocumentSettingPanel,\n} from '@wordpress/edit-post'\nimport {\n select,\n useSelect,\n useDispatch,\n} from '@wordpress/data'\nimport {\n TextControl,\n} from '@wordpress/components'\nimport {\n __,\n} from '@wordpress/i18n'\n\nfunction EmailPanel() {\n const postType = select( 'core/editor' ).getCurrentPostType()\n\n if ( postType !== 'cwp_email' ) {\n return null\n }\n\n const { slug } = useSelect( ( select ) => {\n return {\n slug: select( 'core/editor' ).getEditedPostSlug(),\n }\n } )\n\n const { editPost } = useDispatch( 'core/editor', [slug] )\n\n return (\n \n editPost( { slug: value } ) }\n required\n />\n \n )\n}\n\nexport default {\n name: 'email',\n options: {\n icon: '',\n render: EmailPanel,\n },\n}\n","import { registerPlugin } from '@wordpress/plugins'\n\nimport EmailPanel from './email'\n\nconst panels = [\n EmailPanel,\n]\n\npanels.forEach( ( panel ) => {\n registerPlugin( `cwp-${panel.name}-panel`, panel.options )\n} )\n\nexport default panels\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.editPost;","module.exports = wp.i18n;","module.exports = wp.plugins;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './panels'\n"],"names":["PluginDocumentSettingPanel","select","useSelect","useDispatch","TextControl","__","alias__","EmailPanel","postType","getCurrentPostType","slug","getEditedPostSlug","editPost","wp","element","createElement","name","title","label","help","type","value","onChange","required","options","icon","render","registerPlugin","panels","forEach","panel","concat"],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js b/plugins/construct-wp/assets/js/construct-wp-settings.js index b4bddbd..5d06061 100644 --- a/plugins/construct-wp/assets/js/construct-wp-settings.js +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js @@ -127,6 +127,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === +const __ = _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__; class SettingsPage extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component { constructor() { @@ -167,9 +168,9 @@ class SettingsPage extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compo }, wp.element.createElement("div", { className: "construct-wp__title" }, wp.element.createElement(_components__WEBPACK_IMPORTED_MODULE_4__.CWPLogo, { - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('ConstructWP', 'construct-wp'), + title: __('ConstructWP', 'construct-wp'), className: "construct-wp__logo" - }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.VisuallyHidden, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('ConstructWP', 'construct-wp')), wp.element.createElement("span", { + }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.VisuallyHidden, null, __('ConstructWP', 'construct-wp')), wp.element.createElement("span", { className: "construct-wp__version-badge" }, "v", cwpSettingsData.version)), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TabPanel, { tabs: this.tabs, @@ -225,6 +226,7 @@ __webpack_require__.r(__webpack_exports__); // eslint-disable-next-line new-cap +const __ = _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__; const htmlToElem = html => (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.RawHTML)({ children: html }); @@ -266,13 +268,14 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone } render() { if (!this.state.isAPILoaded) { - return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('General', 'construct-wp')), wp.element.createElement("div", { + return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, __('General', 'construct-wp')), wp.element.createElement("div", { className: "construct-wp__loading-spinner" })); } - return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('General', 'construct-wp')), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Remove admin bar', 'construct-wp'), - help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Removes the admin bar from the frontend if the user doesn\'t have the %s capability', 'construct-wp'), 'cwp_view_admin_dashboard')), + return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, __('General', 'construct-wp')), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: __('Remove admin bar', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - The capability in a code tag */ + __('Removes the admin bar from the frontend if the user doesn\'t have the %s capability', 'construct-wp'), 'cwp_view_admin_dashboard')), checked: this.state.removeAdminBar, onChange: () => { this.setState({ @@ -281,8 +284,9 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }, disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Restrict admin access', 'construct-wp'), - help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Redirects users to the frontend if they try to access the admin area without the %s capability', 'construct-wp'), 'cwp_view_admin_dashboard')), + label: __('Restrict admin access', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - The capability in a code tag */ + __('Redirects users to the frontend if they try to access the admin area without the %s capability', 'construct-wp'), 'cwp_view_admin_dashboard')), checked: this.state.restrictAdminAccess, onChange: () => { this.setState({ @@ -291,8 +295,8 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }, disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Enable controllers', 'construct-wp'), - help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Enables controllers on the frontend based on the current template file', 'construct-wp'), + label: __('Enable controllers', 'construct-wp'), + help: __('Enables controllers on the frontend based on the current template file', 'construct-wp'), checked: this.state.controllers, onChange: () => { this.setState({ @@ -301,8 +305,9 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }, disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Auto-enqueue theme styles', 'construct-wp'), - help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Automatically enqueues the theme\'s styles based on the parent and child theme names. e.g. %s', 'construct-wp'), '/assets/css/theme-name.css')), + label: __('Auto-enqueue theme styles', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - An example theme style path */ + __('Automatically enqueues the theme\'s styles based on the parent and child theme names. e.g. %s', 'construct-wp'), '/assets/css/theme-name.css')), checked: this.state.baseStyles, onChange: () => { this.setState({ @@ -311,8 +316,9 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }, disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Auto-enqueue theme scripts', 'construct-wp'), - help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Automatically enqueues the theme\'s scripts based on the parent and child theme names. e.g. %s', 'construct-wp'), '/assets/js/theme-name.js')), + label: __('Auto-enqueue theme scripts', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - An example theme script path */ + __('Automatically enqueues the theme\'s scripts based on the parent and child theme names. e.g. %s', 'construct-wp'), '/assets/js/theme-name.js')), checked: this.state.baseScripts, onChange: () => { this.setState({ @@ -321,8 +327,9 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }, disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Auto-enqueue template styles', 'construct-wp'), - help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Automatically enqueues a template\'s styles based on the template name. e.g. %s', 'construct-wp'), '/assets/css/templates/template-name.css')), + label: __('Auto-enqueue template styles', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - An example template style path */ + __('Automatically enqueues a template\'s styles based on the template name. e.g. %s', 'construct-wp'), '/assets/css/templates/template-name.css')), checked: this.state.templateStyles, onChange: () => { this.setState({ @@ -331,8 +338,9 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }, disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Auto-enqueue template scripts', 'construct-wp'), - help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Automatically enqueues a template\'s scripts based on the template name. e.g. %s', 'construct-wp'), '/assets/js/templates/template-name.js')), + label: __('Auto-enqueue template scripts', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - An example template script path */ + __('Automatically enqueues a template\'s scripts based on the template name. e.g. %s', 'construct-wp'), '/assets/js/templates/template-name.js')), checked: this.state.templateScripts, onChange: () => { this.setState({ @@ -341,8 +349,8 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }, disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TextControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Footer columns', 'construct-wp'), - help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('The number of footer widget areas to create', 'construct-wp'), + label: __('Footer columns', 'construct-wp'), + help: __('The number of footer widget areas to create', 'construct-wp'), type: "number", value: this.state.footerColumnCount, onChange: value => { @@ -385,14 +393,14 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone templateScripts: !!response.cwp_template_scripts, footerColumnCount: response.cwp_footer_column_count }); - (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Settings saved!', 'construct-wp'), { + (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice(__('Settings saved!', 'construct-wp'), { type: 'snackbar', speak: true, isDismissible: true, icon: '' }); }).catch(() => { - (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createErrorNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Unable to save settings', 'construct-wp'), { + (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createErrorNotice(__('Unable to save settings', 'construct-wp'), { type: 'snackbar', speak: true, isDismissible: true, @@ -400,13 +408,13 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }); }); } - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Save', 'construct-wp'))); + }, __('Save', 'construct-wp'))); } } /* harmony default export */ __webpack_exports__["default"] = ({ tab: { name: 'general', - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('General', 'construct-wp') + title: __('General', 'construct-wp') }, panel: GeneralTab }); @@ -450,6 +458,7 @@ __webpack_require__.r(__webpack_exports__); +const __ = _wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__; class OptimizeTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Component { constructor() { super(); @@ -480,7 +489,7 @@ class OptimizeTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compon const isAllChecked = Object.values(this.state[state]).every(Boolean); const isIndeterminate = Object.values(this.state[state]).some(Boolean) && !isAllChecked; return wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.CheckboxControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Select all', 'construct-wp'), + label: __('Select all', 'construct-wp'), checked: isAllChecked, indeterminate: isIndeterminate, onChange: value => { @@ -513,13 +522,13 @@ class OptimizeTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compon } render() { if (!this.state.isAPILoaded) { - return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Optimize', 'construct-wp')), wp.element.createElement("div", { + return wp.element.createElement(React.Fragment, null, wp.element.createElement("h2", null, __('Optimize', 'construct-wp')), wp.element.createElement("div", { className: "construct-wp__loading-spinner" })); } - return wp.element.createElement(React.Fragment, null, wp.element.createElement("div", null, wp.element.createElement("h2", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Optimize', 'construct-wp')), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Optimize', 'construct-wp'), - help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Whether to optimize the site to remove bloat', 'construct-wp'), + return wp.element.createElement(React.Fragment, null, wp.element.createElement("div", null, wp.element.createElement("h2", null, __('Optimize', 'construct-wp')), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: __('Optimize', 'construct-wp'), + help: __('Whether to optimize the site to remove bloat', 'construct-wp'), checked: this.state.optimize, onChange: () => { this.setState({ @@ -529,13 +538,13 @@ class OptimizeTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compon disabled: this.state.isAPISaving })), this.state.optimize && wp.element.createElement(React.Fragment, null, wp.element.createElement("h4", null, "Remove bloat"), wp.element.createElement("hr", null), wp.element.createElement("div", { className: "construct-wp__section" - }, wp.element.createElement("h5", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('WordPress', 'construct-wp')), this.selectAll('wpBloat'), wp.element.createElement("div", { + }, wp.element.createElement("h5", null, __('WordPress', 'construct-wp')), this.selectAll('wpBloat'), wp.element.createElement("div", { className: "construct-wp__checklist" - }, this.checkbox('wpBloat', 'feeds', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Feeds', 'construct-wp')), this.checkbox('wpBloat', 'rsd_link', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Really Simple Directory link', 'construct-wp')), this.checkbox('wpBloat', 'rel_atts', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Relational attributes', 'construct-wp')), this.checkbox('wpBloat', 'rel_links', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Relational links', 'construct-wp')), this.checkbox('wpBloat', 'version_number', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Version numbers', 'construct-wp')), this.checkbox('wpBloat', 'json_api_links', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('JSON API links', 'construct-wp')), this.checkbox('wpBloat', 'emoji', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Emoji', 'construct-wp')), this.checkbox('wpBloat', 'xmlrpc', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('XML-RPC', 'construct-wp')), this.checkbox('wpBloat', 'jquery_migrate', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('jQuery migrate', 'construct-wp')), this.checkbox('wpBloat', 'self_pingback', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Self pingback', 'construct-wp')))), wp.element.createElement("div", { + }, this.checkbox('wpBloat', 'feeds', __('Feeds', 'construct-wp')), this.checkbox('wpBloat', 'rsd_link', __('Really Simple Directory link', 'construct-wp')), this.checkbox('wpBloat', 'rel_atts', __('Relational attributes', 'construct-wp')), this.checkbox('wpBloat', 'rel_links', __('Relational links', 'construct-wp')), this.checkbox('wpBloat', 'version_number', __('Version numbers', 'construct-wp')), this.checkbox('wpBloat', 'json_api_links', __('JSON API links', 'construct-wp')), this.checkbox('wpBloat', 'emoji', __('Emoji', 'construct-wp')), this.checkbox('wpBloat', 'xmlrpc', __('XML-RPC', 'construct-wp')), this.checkbox('wpBloat', 'jquery_migrate', __('jQuery migrate', 'construct-wp')), this.checkbox('wpBloat', 'self_pingback', __('Self pingback', 'construct-wp')))), wp.element.createElement("div", { className: "construct-wp__section" - }, wp.element.createElement("h5", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Dashboard meta boxes', 'construct-wp')), this.selectAll('dashboardMeta'), wp.element.createElement("div", { + }, wp.element.createElement("h5", null, __('Dashboard meta boxes', 'construct-wp')), this.selectAll('dashboardMeta'), wp.element.createElement("div", { className: "construct-wp__checklist" - }, this.checkbox('dashboardMeta', 'welcome', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Welcome panel', 'construct-wp')), this.checkbox('dashboardMeta', 'site_health', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Site health', 'construct-wp')), this.checkbox('dashboardMeta', 'at_a_glance', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('At a glance', 'construct-wp')), this.checkbox('dashboardMeta', 'activity', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Activity', 'construct-wp')), this.checkbox('dashboardMeta', 'quick_draft', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Quick draft', 'construct-wp')), this.checkbox('dashboardMeta', 'events_and_news', (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Events and news', 'construct-wp'))))), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { + }, this.checkbox('dashboardMeta', 'welcome', __('Welcome panel', 'construct-wp')), this.checkbox('dashboardMeta', 'site_health', __('Site health', 'construct-wp')), this.checkbox('dashboardMeta', 'at_a_glance', __('At a glance', 'construct-wp')), this.checkbox('dashboardMeta', 'activity', __('Activity', 'construct-wp')), this.checkbox('dashboardMeta', 'quick_draft', __('Quick draft', 'construct-wp')), this.checkbox('dashboardMeta', 'events_and_news', __('Events and news', 'construct-wp'))))), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { variant: "primary", disabled: this.state.isAPISaving, isBusy: this.state.isAPISaving, @@ -559,14 +568,14 @@ class OptimizeTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compon wpBloat: response.cwp_optimize_wp_bloat, dashboardMeta: response.cwp_optimize_dashboard_meta }); - (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Settings saved!', 'construct-wp'), { + (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice(__('Settings saved!', 'construct-wp'), { type: 'snackbar', speak: true, isDismissible: true, icon: '' }); }).catch(() => { - (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createErrorNotice((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Unable to save settings', 'construct-wp'), { + (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createErrorNotice(__('Unable to save settings', 'construct-wp'), { type: 'snackbar', speak: true, isDismissible: true, @@ -574,13 +583,13 @@ class OptimizeTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compon }); }); } - }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Save', 'construct-wp'))); + }, __('Save', 'construct-wp'))); } } /* harmony default export */ __webpack_exports__["default"] = ({ tab: { name: 'optimize', - title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Optimize', 'construct-wp') + title: __('Optimize', 'construct-wp') }, panel: OptimizeTab }); diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js.map b/plugins/construct-wp/assets/js/construct-wp-settings.js.map index d2a73e4..9a66eac 100644 --- a/plugins/construct-wp/assets/js/construct-wp-settings.js.map +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js.map @@ -1 +1 @@ -{"version":3,"file":"construct-wp-settings.js","mappings":";;;;;;;;;;;;AAAA,MAAMA,OAAO,GAAKC,KAAK,IACnBC,EAAA,CAAAC,OAAA,CAAAC,aAAA,QAAAC,QAAA;EAAKC,KAAK,EAAC,4BAA4B;EAACC,OAAO,EAAC;AAAgB,GAAKN,KAAK,GACtEC,EAAA,CAAAC,OAAA,CAAAC,aAAA;EACII,IAAI,EAAC,8CAA8C;EACnDC,CAAC,EAAC;AAA4tK,CACjuK,CAAC,EACFP,EAAA,CAAAC,OAAA,CAAAC,aAAA;EACIM,EAAE,EAAE,MAAO;EACXC,EAAE,EAAE,MAAO;EACXC,CAAC,EAAE,MAAO;EACVJ,IAAI,EAAC;AAAmC,CAC3C,CAAC,EACFN,EAAA,CAAAC,OAAA,CAAAC,aAAA;EACII,IAAI,EAAC,4CAA4C;EACjDC,CAAC,EAAC;AAAiO,CACtO,CAAC,EACFP,EAAA,CAAAC,OAAA,CAAAC,aAAA;EACII,IAAI,EAAC,4CAA4C;EACjDC,CAAC,EAAC;AAA+T,CACpU,CACA,CACR;AAED,+DAAeT,OAAO;;;;;;;;;;;;;;;;;ACvByB;;;;;;;;;;;;;;;;;;ACEjB;AAIN;AAGG;AAE3B,MAAMc,OAAO,GAAGA,CAAA,KAAM;EAClB,MAAMM,OAAO,GAAGH,0DAAS,CACnBI,MAAM,IACJA,MAAM,CAAEF,qDAAa,CAAC,CACjBG,UAAU,CAAC,CAAC,CACZC,MAAM,CAAIC,MAAM,IAAMA,MAAM,CAACC,IAAI,KAAK,UAAW,CAAC,EAC3D,EACJ,CAAC;EAED,MAAM;IAAEC;EAAa,CAAC,GAAGV,4DAAW,CAAEG,qDAAa,CAAC;EAEpD,OACIjB,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACW,+DAAY;IACTY,SAAS,EAAC,mBAAmB;IAC7BP,OAAO,EAAGA,OAAS;IACnBQ,QAAQ,EAAGF;EAAc,CAC5B,CAAC;AAEV,CAAC;AAED,+DAAeZ,OAAO;;;;;;;;;;;;;;;;;;AC/B8B;AAI3B;AAID;AAExBgB,2DAAS,CAAE,SAAS,EAAE,SAAS,EAAE,MAAM;EACnC,OAAO,CACHC,sDAAU,EACVC,uDAAW,CACd;AACL,CAAC,EAAE,CAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACbqB;AAIG;AAGL;AAGD;AAIC;AAEzB,MAAMH,YAAY,SAASI,yDAAS,CAAC;EAMjCK,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,CAAC;IAAAC,eAAA,eANJ,EAAE;IAAAA,eAAA,iBACA,CAAC,CAAC;IAAAA,eAAA,kBACD,EAAE;IAAAA,eAAA,qBACC,EAAE;IAKX,IAAI,CAACC,OAAO,GAAGC,MAAM,CAACC,QAAQ,CAACC,MAAM,GAAGF,MAAM,CAACC,QAAQ,CAACE,QAAQ,GAAG,oBAAoB;;IAEvF;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ,IAAIC,UAAU,GAAGT,8DAAY,CAAE,SAAS,EAAE,EAAG,CAAC;IAC9C,IAAI,CAACU,IAAI,GAAGD,UAAU,CAACE,GAAG,CAAIC,GAAG,IAAMA,GAAG,CAACA,GAAI,CAAC;IAEhDH,UAAU,CAACI,OAAO,CAAID,GAAG,IAAM;MAC3B,IAAI,CAACE,MAAM,CAACF,GAAG,CAACA,GAAG,CAACG,IAAI,CAAC,GAAGH,GAAG,CAACI,KAAK;IACzC,CAAE,CAAC;IAEH,MAAMC,SAAS,GAAG,IAAIC,eAAe,CAAEb,MAAM,CAACC,QAAQ,CAACa,MAAO,CAAC;IAC/D,MAAMC,SAAS,GAAGH,SAAS,CAACI,GAAG,CAAE,MAAO,CAAC,CAACC,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC,CAACA,OAAO,CAAE,IAAI,EAAE,EAAG,CAAC;IAE3F,IAAI,CAACC,UAAU,GAAG,OAAOH,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAG,EAAE;EACpE;EAEAI,MAAMA,CAAA,EAAG;IACL;IACA,OACI1D,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAAyD,KAAA,CAAAC,QAAA,QACI5D,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAAsB,GACjCzB,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAAyB,GACpCzB,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAAqB,GAChCzB,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACJ,gDAAO;MACJ+D,KAAK,EAAE1B,mDAAE,CAAE,aAAa,EAAE,cAAe,CAAE;MAC3CV,SAAS,EAAC;IAAoB,CACjC,CAAC,EACFzB,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC+B,iEAAc,QACTE,mDAAE,CAAE,aAAa,EAAE,cAAe,CACxB,CAAC,EACjBnC,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAMuB,SAAS,EAAC;IAA6B,GAAC,GAAC,EAACqC,eAAe,CAACC,OAAc,CAC7E,CAAC,EAEN/D,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC8B,2DAAQ;MACLY,IAAI,EAAE,IAAI,CAACA,IAAK;MAChBoB,cAAc,EAAE,IAAI,CAACP,UAAW;MAChCQ,QAAQ,EAAIC,OAAO,IAAM;QACrB,IAAKA,OAAO,KAAK,IAAI,CAACT,UAAU,EAAG;UAC/BlB,MAAM,CAACC,QAAQ,CAAC2B,IAAI,MAAAC,MAAA,CAAM,IAAI,CAAC9B,OAAO,OAAA8B,MAAA,CAAIF,OAAO,CAAE;QACvD;MACJ;IAAE,GAEA,MAAM,CAAC,CACH,CACT,CACJ,CAAC,EAENlE,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAAoB,GAC/BzB,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAAyB,GACnC,CAAC,IAAI,CAACgC,UAAU,IAAIzD,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAA+B,CAAM,CAAC,EACzE4C,MAAM,CAACC,OAAO,CAAE,IAAI,CAACtB,MAAO,CAAC,CAACH,GAAG,CAAE,CAAA0B,IAAA,EAAsBC,CAAC,KAAM;MAAA,IAA3B,CAACC,SAAS,EAAEC,KAAK,CAAC,GAAAH,IAAA;MACpD,IAAK,IAAI,CAACd,UAAU,KAAKgB,SAAS,EAAG;QACjC,OACIzE,EAAA,CAAAC,OAAA,CAAAC,aAAA;UACIyE,EAAE,EAAE,MAAM,GAAGF,SAAU;UACvBhD,SAAS,EAAC,yBAAyB;UACnCmD,GAAG,EAAEJ;QAAE,GAEPxE,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACwE,KAAK,MAAE,CACP,CAAC;MAEd;MAEA,OAAO1E,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAAyD,KAAA,CAAAC,QAAA,MAAI,CAAC;IAChB,CAAE,CACD,CACJ,CAAC,EAEN5D,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAAuB,GAClCzB,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACU,gDAAO,MAAE,CACT,CACP,CAAC;EAEX;AACJ;AAEA,+DAAee,YAAY;;;;;;;;;;;;;;;;;;;AC/GA;AAKG;AAGN;AAIA;;AAExB;AACA,MAAMwD,UAAU,GAAKC,IAAI,IAAMP,2DAAO,CAAE;EAAEQ,QAAQ,EAAED;AAAK,CAAE,CAAC;AAE5D,MAAME,UAAU,SAASvD,yDAAS,CAAC;EAC/BK,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,CAAC;IAEP,IAAI,CAACmD,KAAK,GAAG;MACTC,WAAW,EAAE,KAAK;MAClBC,WAAW,EAAE,KAAK;MAClBC,cAAc,EAAE,IAAI;MACpBC,mBAAmB,EAAE,IAAI;MACzBC,WAAW,EAAE,IAAI;MACjBC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAE,IAAI;MACjBC,cAAc,EAAE,IAAI;MACpBC,eAAe,EAAE,IAAI;MACrBC,iBAAiB,EAAE;IACvB,CAAC;EACL;EAEAC,iBAAiBA,CAAA,EAAG;IAChBlG,EAAE,CAACmG,GAAG,CAACC,WAAW,CAACC,IAAI,CAAE,MAAM;MAC3B,IAAI,CAACC,QAAQ,GAAG,IAAItG,EAAE,CAACmG,GAAG,CAACI,MAAM,CAACC,QAAQ,CAAC,CAAC;MAE5C,IAAK,CAAC,IAAI,CAACjB,KAAK,CAACC,WAAW,EAAG;QAC3B,IAAI,CAACc,QAAQ,CAACG,KAAK,CAAC,CAAC,CAACJ,IAAI,CAAIK,QAAQ,IAAM;UACxC,IAAI,CAACC,QAAQ,CAAE;YACXnB,WAAW,EAAE,IAAI;YACjBE,cAAc,EAAE,CAAC,CAACgB,QAAQ,CAACE,oBAAoB;YAC/CjB,mBAAmB,EAAE,CAAC,CAACe,QAAQ,CAACG,yBAAyB;YACzDjB,WAAW,EAAE,CAAC,CAACc,QAAQ,CAACI,eAAe;YACvCjB,UAAU,EAAE,CAAC,CAACa,QAAQ,CAACK,eAAe;YACtCjB,WAAW,EAAE,CAAC,CAACY,QAAQ,CAACM,gBAAgB;YACxCjB,cAAc,EAAE,CAAC,CAACW,QAAQ,CAACO,mBAAmB;YAC9CjB,eAAe,EAAE,CAAC,CAACU,QAAQ,CAACQ,oBAAoB;YAChDjB,iBAAiB,EAAES,QAAQ,CAACS;UAChC,CAAE,CAAC;QACP,CAAE,CAAC;MACP;IACJ,CAAE,CAAC;EACP;EAEAzD,MAAMA,CAAA,EAAG;IACL,IAAK,CAAC,IAAI,CAAC6B,KAAK,CAACC,WAAW,EAAG;MAC3B,OACIxF,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAAyD,KAAA,CAAAC,QAAA,QACI5D,EAAA,CAAAC,OAAA,CAAAC,aAAA,aAAKiC,mDAAE,CAAE,SAAS,EAAE,cAAe,CAAM,CAAC,EAC1CnC,EAAA,CAAAC,OAAA,CAAAC,aAAA;QAAKuB,SAAS,EAAC;MAA+B,CAAM,CACtD,CAAC;IAEX;IAEA,OACIzB,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAAyD,KAAA,CAAAC,QAAA,QACI5D,EAAA,CAAAC,OAAA,CAAAC,aAAA,aAAKiC,mDAAE,CAAE,SAAS,EAAE,cAAe,CAAM,CAAC,EAC1CnC,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC8E,gEAAa;MACVoC,KAAK,EAAEjF,mDAAE,CAAE,kBAAkB,EAAE,cAAe,CAAE;MAChDkF,IAAI,EAAElC,UAAU,CAAED,wDAAO,CACrB/C,mDAAE,CAAE,qFAAqF,EAAE,cAAe,CAAC,EAC3G,uCACJ,CAAE,CAAE;MACJmF,OAAO,EAAE,IAAI,CAAC/B,KAAK,CAACG,cAAe;MACnC6B,QAAQ,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACZ,QAAQ,CAAE;UACXjB,cAAc,EAAE,CAAC,IAAI,CAACH,KAAK,CAACG;QAChC,CAAE,CAAC;MACP,CAAE;MACF8B,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE;IAAY,CACpC,CAAC,EAEFzF,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC8E,gEAAa;MACVoC,KAAK,EAAEjF,mDAAE,CAAE,uBAAuB,EAAE,cAAe,CAAE;MACrDkF,IAAI,EAAElC,UAAU,CAAED,wDAAO,CACrB/C,mDAAE,CAAE,gGAAgG,EAAE,cAAe,CAAC,EACtH,uCACJ,CAAE,CAAE;MACJmF,OAAO,EAAE,IAAI,CAAC/B,KAAK,CAACI,mBAAoB;MACxC4B,QAAQ,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACZ,QAAQ,CAAE;UACXhB,mBAAmB,EAAE,CAAC,IAAI,CAACJ,KAAK,CAACI;QACrC,CAAE,CAAC;MACP,CAAE;MACF6B,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE;IAAY,CACpC,CAAC,EAEFzF,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC8E,gEAAa;MACVoC,KAAK,EAAEjF,mDAAE,CAAE,oBAAoB,EAAE,cAAe,CAAE;MAClDkF,IAAI,EAAElF,mDAAE,CAAE,wEAAwE,EAAE,cAAe,CAAE;MACrGmF,OAAO,EAAE,IAAI,CAAC/B,KAAK,CAACK,WAAY;MAChC2B,QAAQ,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACZ,QAAQ,CAAE;UACXf,WAAW,EAAE,CAAC,IAAI,CAACL,KAAK,CAACK;QAC7B,CAAE,CAAC;MACP,CAAE;MACF4B,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE;IAAY,CACpC,CAAC,EAEFzF,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC8E,gEAAa;MACVoC,KAAK,EAAEjF,mDAAE,CAAE,2BAA2B,EAAE,cAAe,CAAE;MACzDkF,IAAI,EAAElC,UAAU,CAAED,wDAAO,CACrB/C,mDAAE,CAAE,+FAA+F,EAAE,cAAe,CAAC,EACrH,yCACJ,CAAE,CAAE;MACJmF,OAAO,EAAE,IAAI,CAAC/B,KAAK,CAACM,UAAW;MAC/B0B,QAAQ,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACZ,QAAQ,CAAE;UACXd,UAAU,EAAE,CAAC,IAAI,CAACN,KAAK,CAACM;QAC5B,CAAE,CAAC;MACP,CAAE;MACF2B,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE;IAAY,CACpC,CAAC,EAEFzF,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC8E,gEAAa;MACVoC,KAAK,EAAEjF,mDAAE,CAAE,4BAA4B,EAAE,cAAe,CAAE;MAC1DkF,IAAI,EAAElC,UAAU,CAAED,wDAAO,CACrB/C,mDAAE,CAAE,gGAAgG,EAAE,cAAe,CAAC,EACtH,uCACJ,CAAE,CAAE;MACJmF,OAAO,EAAE,IAAI,CAAC/B,KAAK,CAACO,WAAY;MAChCyB,QAAQ,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACZ,QAAQ,CAAE;UACXb,WAAW,EAAE,CAAC,IAAI,CAACP,KAAK,CAACO;QAC7B,CAAE,CAAC;MACP,CAAE;MACF0B,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE;IAAY,CACpC,CAAC,EAEFzF,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC8E,gEAAa;MACVoC,KAAK,EAAEjF,mDAAE,CAAE,8BAA8B,EAAE,cAAe,CAAE;MAC5DkF,IAAI,EAAElC,UAAU,CAAED,wDAAO,CACrB/C,mDAAE,CAAE,iFAAiF,EAAE,cAAe,CAAC,EACvG,sDACJ,CAAE,CAAE;MACJmF,OAAO,EAAE,IAAI,CAAC/B,KAAK,CAACQ,cAAe;MACnCwB,QAAQ,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACZ,QAAQ,CAAE;UACXZ,cAAc,EAAE,CAAC,IAAI,CAACR,KAAK,CAACQ;QAChC,CAAE,CAAC;MACP,CAAE;MACFyB,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE;IAAY,CACpC,CAAC,EAEFzF,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC8E,gEAAa;MACVoC,KAAK,EAAEjF,mDAAE,CAAE,+BAA+B,EAAE,cAAe,CAAE;MAC7DkF,IAAI,EAAElC,UAAU,CAAED,wDAAO,CACrB/C,mDAAE,CAAE,kFAAkF,EAAE,cAAe,CAAC,EACxG,oDACJ,CAAE,CAAE;MACJmF,OAAO,EAAE,IAAI,CAAC/B,KAAK,CAACS,eAAgB;MACpCuB,QAAQ,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACZ,QAAQ,CAAE;UACXX,eAAe,EAAE,CAAC,IAAI,CAACT,KAAK,CAACS;QACjC,CAAE,CAAC;MACP,CAAE;MACFwB,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE;IAAY,CACpC,CAAC,EAEFzF,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC6E,8DAAW;MACRqC,KAAK,EAAEjF,mDAAE,CAAE,gBAAgB,EAAE,cAAe,CAAE;MAC9CkF,IAAI,EAAElF,mDAAE,CAAE,6CAA6C,EAAE,cAAe,CAAE;MAC1EZ,IAAI,EAAC,QAAQ;MACbkG,KAAK,EAAE,IAAI,CAAClC,KAAK,CAACU,iBAAkB;MACpCsB,QAAQ,EAAIE,KAAK,IAAM;QACnB,IAAI,CAACd,QAAQ,CAAE;UACXV,iBAAiB,EAAEwB;QACvB,CAAE,CAAC;MACP,CAAE;MACFD,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE;IAAY,CACpC,CAAC,EAEFzF,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC4E,yDAAM;MACH4C,OAAO,EAAC,SAAS;MACjBF,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE,WAAY;MACjCkC,MAAM,EAAE,IAAI,CAACpC,KAAK,CAACE,WAAY;MAC/BhE,SAAS,EAAC,0BAA0B;MACpCmG,OAAO,EAAEA,CAAA,KAAM;QACX,IAAI,CAACjB,QAAQ,CAAE;UACXlB,WAAW,EAAE;QACjB,CAAE,CAAC;QAEH,MAAMa,QAAQ,GAAG,IAAItG,EAAE,CAACmG,GAAG,CAACI,MAAM,CAACC,QAAQ,CAAE;UACzC;UACAI,oBAAoB,EAAE,IAAI,CAACrB,KAAK,CAACG,cAAc;UAC/CmB,yBAAyB,EAAE,IAAI,CAACtB,KAAK,CAACI,mBAAmB;UACzDmB,eAAe,EAAE,IAAI,CAACvB,KAAK,CAACK,WAAW;UACvCmB,eAAe,EAAE,IAAI,CAACxB,KAAK,CAACM,UAAU;UACtCmB,gBAAgB,EAAE,IAAI,CAACzB,KAAK,CAACO,WAAW;UACxCmB,mBAAmB,EAAE,IAAI,CAAC1B,KAAK,CAACQ,cAAc;UAC9CmB,oBAAoB,EAAE,IAAI,CAAC3B,KAAK,CAACS,eAAe;UAChDmB,uBAAuB,EAAE,IAAI,CAAC5B,KAAK,CAACU;UACpC;QACJ,CAAE,CAAC;;QAEHK,QAAQ,CAACuB,IAAI,CAAC,CAAC,CACVxB,IAAI,CAAIK,QAAQ,IAAM;UACnB,IAAI,CAACC,QAAQ,CAAE;YACXlB,WAAW,EAAE,KAAK;YAClBC,cAAc,EAAE,CAAC,CAACgB,QAAQ,CAACE,oBAAoB;YAC/CjB,mBAAmB,EAAE,CAAC,CAACe,QAAQ,CAACG,yBAAyB;YACzDjB,WAAW,EAAE,CAAC,CAACc,QAAQ,CAACI,eAAe;YACvCjB,UAAU,EAAE,CAAC,CAACa,QAAQ,CAACK,eAAe;YACtCjB,WAAW,EAAE,CAAC,CAACY,QAAQ,CAACM,gBAAgB;YACxCjB,cAAc,EAAE,CAAC,CAACW,QAAQ,CAACO,mBAAmB;YAC9CjB,eAAe,EAAE,CAAC,CAACU,QAAQ,CAACQ,oBAAoB;YAChDjB,iBAAiB,EAAES,QAAQ,CAACS;UAChC,CAAE,CAAC;UAEHlC,yDAAQ,CAAE,cAAe,CAAC,CAAC6C,mBAAmB,CAC1C3F,mDAAE,CAAE,iBAAiB,EAAE,cAAe,CAAC,EACvC;YACIZ,IAAI,EAAE,UAAU;YAChBwG,KAAK,EAAE,IAAI;YACXC,aAAa,EAAE,IAAI;YACnBC,IAAI,EAAE;UACV,CACJ,CAAC;QACL,CAAE,CAAC,CACFC,KAAK,CAAE,MAAM;UACVjD,yDAAQ,CAAE,cAAe,CAAC,CAACkD,iBAAiB,CACxChG,mDAAE,CAAE,yBAAyB,EAAE,cAAe,CAAC,EAC/C;YACIZ,IAAI,EAAE,UAAU;YAChBwG,KAAK,EAAE,IAAI;YACXC,aAAa,EAAE,IAAI;YACnBC,IAAI,EAAE;UACV,CACJ,CAAC;QACL,CAAE,CAAC;MACX;IAAE,GAEA9F,mDAAE,CAAE,MAAM,EAAE,cAAe,CACzB,CACV,CAAC;EAEX;AACJ;AAEA,+DAAe;EACXW,GAAG,EAAE;IACDG,IAAI,EAAE,SAAS;IACfY,KAAK,EAAE1B,mDAAE,CAAE,SAAS,EAAE,cAAe;EACzC,CAAC;EACDe,KAAK,EAAEoC;AACX,CAAC;;;;;;;;;;;;;;;;;ACrQgD;;;;;;;;;;;;;;;;;;;;ACEtB;AAKG;AAGN;AAGA;AAExB,MAAM+C,WAAW,SAAStG,yDAAS,CAAC;EAChCK,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,CAAC;IAEP,IAAI,CAACmD,KAAK,GAAG;MACTC,WAAW,EAAE,KAAK;MAClBC,WAAW,EAAE,KAAK;MAClB6C,QAAQ,EAAE,IAAI;MACdC,OAAO,EAAE,CAAC,CAAC;MACXC,aAAa,EAAE,CAAC;IACpB,CAAC;EACL;EAEAtC,iBAAiBA,CAAA,EAAG;IAChBlG,EAAE,CAACmG,GAAG,CAACC,WAAW,CAACC,IAAI,CAAE,MAAM;MAC3B,IAAI,CAACC,QAAQ,GAAG,IAAItG,EAAE,CAACmG,GAAG,CAACI,MAAM,CAACC,QAAQ,CAAC,CAAC;MAE5C,IAAK,CAAC,IAAI,CAACjB,KAAK,CAACC,WAAW,EAAG;QAC3B,IAAI,CAACc,QAAQ,CAACG,KAAK,CAAC,CAAC,CAACJ,IAAI,CAAIK,QAAQ,IAAM;UACxC,IAAI,CAACC,QAAQ,CAAE;YACXnB,WAAW,EAAE,IAAI;YACjB8C,QAAQ,EAAE,CAAC,CAAC5B,QAAQ,CAAC+B,YAAY;YACjCF,OAAO,EAAE7B,QAAQ,CAACgC,qBAAqB;YACvCF,aAAa,EAAE9B,QAAQ,CAACiC;UAC5B,CAAE,CAAC;QACP,CAAE,CAAC;MACP;IACJ,CAAE,CAAC;EACP;EAEAC,SAASA,CAAErD,KAAK,EAAG;IACf,MAAMsD,YAAY,GAAGxE,MAAM,CAACyE,MAAM,CAAE,IAAI,CAACvD,KAAK,CAACA,KAAK,CAAE,CAAC,CAACwD,KAAK,CAAEC,OAAQ,CAAC;IACxE,MAAMC,eAAe,GAAG5E,MAAM,CAACyE,MAAM,CAAE,IAAI,CAACvD,KAAK,CAACA,KAAK,CAAE,CAAC,CAAC2D,IAAI,CAAEF,OAAQ,CAAC,IAAI,CAACH,YAAY;IAE3F,OACI7I,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACkI,kEAAe;MACZhB,KAAK,EAAEjF,mDAAE,CAAE,YAAY,EAAE,cAAe,CAAE;MAC1CmF,OAAO,EAAEuB,YAAa;MACtBM,aAAa,EAAEF,eAAgB;MAC/B1B,QAAQ,EAAIE,KAAK,IAAM;QACnB,IAAI2B,QAAQ,GAAG,IAAI,CAAC7D,KAAK,CAACA,KAAK,CAAC;QAEhC,KAAM,MAAMX,GAAG,IAAIwE,QAAQ,EAAG;UAC1B,IAAK/E,MAAM,CAACgF,SAAS,CAACC,cAAc,CAACC,IAAI,CAAEH,QAAQ,EAAExE,GAAI,CAAC,EAAG;YACzDwE,QAAQ,CAACxE,GAAG,CAAC,GAAG6C,KAAK;UACzB;QACJ;QAEA,IAAI,CAACd,QAAQ,CAAE;UACX,CAACpB,KAAK,GAAG6D;QACb,CAAE,CAAC;MACP;IAAE,CACL,CAAC;EAEV;EAEAI,QAAQA,CAAEC,IAAI,EAAEC,IAAI,EAAE7F,KAAK,EAAG;IAC1B,OACI7D,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACkI,kEAAe;MACZhB,KAAK,EAAEvD,KAAM;MACbyD,OAAO,EAAE,IAAI,CAAC/B,KAAK,CAACkE,IAAI,CAAC,CAACC,IAAI,CAAE;MAChCnC,QAAQ,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACZ,QAAQ,CAAE;UACX,CAAC8C,IAAI,GAAG;YACJ,GAAG,IAAI,CAAClE,KAAK,CAACkE,IAAI,CAAC;YACnB,CAACC,IAAI,GAAG,CAAC,IAAI,CAACnE,KAAK,CAACkE,IAAI,CAAC,CAACC,IAAI;UAClC;QACJ,CAAE,CAAC;MACP,CAAE;MACFlC,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE;IAAY,CACpC,CAAC;EAEV;EAEA/B,MAAMA,CAAA,EAAG;IACL,IAAK,CAAC,IAAI,CAAC6B,KAAK,CAACC,WAAW,EAAG;MAC3B,OACIxF,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAAyD,KAAA,CAAAC,QAAA,QACI5D,EAAA,CAAAC,OAAA,CAAAC,aAAA,aAAKiC,mDAAE,CAAE,UAAU,EAAE,cAAe,CAAM,CAAC,EAC3CnC,EAAA,CAAAC,OAAA,CAAAC,aAAA;QAAKuB,SAAS,EAAC;MAA+B,CAAM,CACtD,CAAC;IAEX;IAEA,OACIzB,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAAyD,KAAA,CAAAC,QAAA,QACI5D,EAAA,CAAAC,OAAA,CAAAC,aAAA,cACIF,EAAA,CAAAC,OAAA,CAAAC,aAAA,aAAKiC,mDAAE,CAAE,UAAU,EAAE,cAAe,CAAM,CAAC,EAC3CnC,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC8E,gEAAa;MACVoC,KAAK,EAAEjF,mDAAE,CAAE,UAAU,EAAE,cAAe,CAAE;MACxCkF,IAAI,EAAElF,mDAAE,CAAE,8CAA8C,EAAE,cAAe,CAAE;MAC3EmF,OAAO,EAAE,IAAI,CAAC/B,KAAK,CAAC+C,QAAS;MAC7Bf,QAAQ,EAAEA,CAAA,KAAM;QACZ,IAAI,CAACZ,QAAQ,CAAE;UACX2B,QAAQ,EAAE,CAAC,IAAI,CAAC/C,KAAK,CAAC+C;QAC1B,CAAE,CAAC;MACP,CAAE;MACFd,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE;IAAY,CACpC,CACA,CAAC,EAEL,IAAI,CAACF,KAAK,CAAC+C,QAAQ,IAChBtI,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAAyD,KAAA,CAAAC,QAAA,QACI5D,EAAA,CAAAC,OAAA,CAAAC,aAAA,aAAI,cAAgB,CAAC,EAErBF,EAAA,CAAAC,OAAA,CAAAC,aAAA,WAAK,CAAC,EAENF,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAAuB,GAClCzB,EAAA,CAAAC,OAAA,CAAAC,aAAA,aAAKiC,mDAAE,CAAE,WAAW,EAAE,cAAe,CAAM,CAAC,EAE3C,IAAI,CAACyG,SAAS,CAAE,SAAU,CAAC,EAC5B5I,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAAyB,GACnC,IAAI,CAAC+H,QAAQ,CAAE,SAAS,EAAE,OAAO,EAAErH,mDAAE,CAAE,OAAO,EAAE,cAAe,CAAE,CAAC,EAClE,IAAI,CAACqH,QAAQ,CAAE,SAAS,EAAE,UAAU,EAAErH,mDAAE,CAAE,8BAA8B,EAAE,cAAe,CAAE,CAAC,EAC5F,IAAI,CAACqH,QAAQ,CAAE,SAAS,EAAE,UAAU,EAAErH,mDAAE,CAAE,uBAAuB,EAAE,cAAe,CAAE,CAAC,EACrF,IAAI,CAACqH,QAAQ,CAAE,SAAS,EAAE,WAAW,EAAErH,mDAAE,CAAE,kBAAkB,EAAE,cAAe,CAAE,CAAC,EACjF,IAAI,CAACqH,QAAQ,CAAE,SAAS,EAAE,gBAAgB,EAAErH,mDAAE,CAAE,iBAAiB,EAAE,cAAe,CAAE,CAAC,EACrF,IAAI,CAACqH,QAAQ,CAAE,SAAS,EAAE,gBAAgB,EAAErH,mDAAE,CAAE,gBAAgB,EAAE,cAAe,CAAE,CAAC,EACpF,IAAI,CAACqH,QAAQ,CAAE,SAAS,EAAE,OAAO,EAAErH,mDAAE,CAAE,OAAO,EAAE,cAAe,CAAE,CAAC,EAClE,IAAI,CAACqH,QAAQ,CAAE,SAAS,EAAE,QAAQ,EAAErH,mDAAE,CAAE,SAAS,EAAE,cAAe,CAAE,CAAC,EACrE,IAAI,CAACqH,QAAQ,CAAE,SAAS,EAAE,gBAAgB,EAAErH,mDAAE,CAAE,gBAAgB,EAAE,cAAe,CAAE,CAAC,EACpF,IAAI,CAACqH,QAAQ,CAAE,SAAS,EAAE,eAAe,EAAErH,mDAAE,CAAE,eAAe,EAAE,cAAe,CAAE,CACjF,CACJ,CAAC,EAENnC,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAAuB,GAClCzB,EAAA,CAAAC,OAAA,CAAAC,aAAA,aAAKiC,mDAAE,CAAE,sBAAsB,EAAE,cAAe,CAAM,CAAC,EAEtD,IAAI,CAACyG,SAAS,CAAE,eAAgB,CAAC,EAElC5I,EAAA,CAAAC,OAAA,CAAAC,aAAA;MAAKuB,SAAS,EAAC;IAAyB,GACnC,IAAI,CAAC+H,QAAQ,CAAE,eAAe,EAAE,SAAS,EAAErH,mDAAE,CAAE,eAAe,EAAE,cAAe,CAAE,CAAC,EAClF,IAAI,CAACqH,QAAQ,CAAE,eAAe,EAAE,aAAa,EAAErH,mDAAE,CAAE,aAAa,EAAE,cAAe,CAAE,CAAC,EACpF,IAAI,CAACqH,QAAQ,CAAE,eAAe,EAAE,aAAa,EAAErH,mDAAE,CAAE,aAAa,EAAE,cAAe,CAAE,CAAC,EACpF,IAAI,CAACqH,QAAQ,CAAE,eAAe,EAAE,UAAU,EAAErH,mDAAE,CAAE,UAAU,EAAE,cAAe,CAAE,CAAC,EAC9E,IAAI,CAACqH,QAAQ,CAAE,eAAe,EAAE,aAAa,EAAErH,mDAAE,CAAE,aAAa,EAAE,cAAe,CAAE,CAAC,EACpF,IAAI,CAACqH,QAAQ,CAAE,eAAe,EAAE,iBAAiB,EAAErH,mDAAE,CAAE,iBAAiB,EAAE,cAAe,CAAE,CAC3F,CACJ,CACP,CACL,EAEDnC,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAAC4E,yDAAM;MACH4C,OAAO,EAAC,SAAS;MACjBF,QAAQ,EAAE,IAAI,CAACjC,KAAK,CAACE,WAAY;MACjCkC,MAAM,EAAE,IAAI,CAACpC,KAAK,CAACE,WAAY;MAC/BhE,SAAS,EAAC,0BAA0B;MACpCmG,OAAO,EAAEA,CAAA,KAAM;QACX,IAAI,CAACjB,QAAQ,CAAE;UACXlB,WAAW,EAAE;QACjB,CAAE,CAAC;QAEH,MAAMa,QAAQ,GAAG,IAAItG,EAAE,CAACmG,GAAG,CAACI,MAAM,CAACC,QAAQ,CAAE;UACzC;UACAiC,YAAY,EAAE,IAAI,CAAClD,KAAK,CAAC+C,QAAQ;UACjCI,qBAAqB,EAAE,IAAI,CAACnD,KAAK,CAACgD,OAAO;UACzCI,2BAA2B,EAAE,IAAI,CAACpD,KAAK,CAACiD;UACxC;QACJ,CAAE,CAAC;;QAEHlC,QAAQ,CAACuB,IAAI,CAAC,CAAC,CACVxB,IAAI,CAAIK,QAAQ,IAAM;UACnB,IAAI,CAACC,QAAQ,CAAE;YACXlB,WAAW,EAAE,KAAK;YAClB6C,QAAQ,EAAE,CAAC,CAAC5B,QAAQ,CAAC+B,YAAY;YACjCF,OAAO,EAAE7B,QAAQ,CAACgC,qBAAqB;YACvCF,aAAa,EAAE9B,QAAQ,CAACiC;UAC5B,CAAE,CAAC;UAEH1D,yDAAQ,CAAE,cAAe,CAAC,CAAC6C,mBAAmB,CAC1C3F,mDAAE,CAAE,iBAAiB,EAAE,cAAe,CAAC,EACvC;YACIZ,IAAI,EAAE,UAAU;YAChBwG,KAAK,EAAE,IAAI;YACXC,aAAa,EAAE,IAAI;YACnBC,IAAI,EAAE;UACV,CACJ,CAAC;QACL,CAAE,CAAC,CACFC,KAAK,CAAE,MAAM;UACVjD,yDAAQ,CAAE,cAAe,CAAC,CAACkD,iBAAiB,CACxChG,mDAAE,CAAE,yBAAyB,EAAE,cAAe,CAAC,EAC/C;YACIZ,IAAI,EAAE,UAAU;YAChBwG,KAAK,EAAE,IAAI;YACXC,aAAa,EAAE,IAAI;YACnBC,IAAI,EAAE;UACV,CACJ,CAAC;QACL,CAAE,CAAC;MACX;IAAE,GAEA9F,mDAAE,CAAE,MAAM,EAAE,cAAe,CACzB,CACV,CAAC;EAEX;AACJ;AAEA,+DAAe;EACXW,GAAG,EAAE;IACDG,IAAI,EAAE,UAAU;IAChBY,KAAK,EAAE1B,mDAAE,CAAE,UAAU,EAAE,cAAe;EAC1C,CAAC;EACDe,KAAK,EAAEmF;AACX,CAAC;;;;;;;;;;AC5ND;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;ACJ2B;AAIX;AAEhBsB,QAAQ,CAACC,gBAAgB,CAAE,kBAAkB,EAAE,MAAM;EACjD,MAAMC,UAAU,GAAGF,QAAQ,CAACG,cAAc,CAAE,uBAAwB,CAAC;EAErE,IAAKD,UAAU,EAAG;IACdnG,0DAAM,CACF1D,EAAA,CAAAC,OAAA,CAAAC,aAAA,CAACyB,gDAAY,MAAE,CAAC,EAChBkI,UACJ,CAAC;EACL;AACJ,CAAE,CAAC,C","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n TextControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n controllers: true,\n baseStyles: true,\n baseScripts: true,\n templateStyles: true,\n templateScripts: true,\n footerColumnCount: 3,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n controllers: !this.state.controllers,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/theme-name.css'\n ) )}\n checked={this.state.baseStyles}\n onChange={() => {\n this.setState( {\n baseStyles: !this.state.baseStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/theme-name.js'\n ) )}\n checked={this.state.baseScripts}\n onChange={() => {\n this.setState( {\n baseScripts: !this.state.baseScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/templates/template-name.css'\n ) )}\n checked={this.state.templateStyles}\n onChange={() => {\n this.setState( {\n templateStyles: !this.state.templateStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/templates/template-name.js'\n ) )}\n checked={this.state.templateScripts}\n onChange={() => {\n this.setState( {\n templateScripts: !this.state.templateScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n footerColumnCount: value,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n cwp_controllers: this.state.controllers,\n cwp_base_styles: this.state.baseStyles,\n cwp_base_scripts: this.state.baseScripts,\n cwp_template_styles: this.state.templateStyles,\n cwp_template_scripts: this.state.templateScripts,\n cwp_footer_column_count: this.state.footerColumnCount,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n

Remove bloat

\n\n
\n\n
\n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n\n
\n
{__( 'Dashboard meta boxes', 'construct-wp' )}
\n\n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","TextControl","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","baseStyles","baseScripts","templateStyles","templateScripts","footerColumnCount","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","cwp_base_styles","cwp_base_scripts","cwp_template_styles","cwp_template_scripts","cwp_footer_column_count","label","help","checked","onChange","disabled","value","variant","isBusy","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","newState","prototype","hasOwnProperty","call","checkbox","area","item","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n TextControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n controllers: true,\n baseStyles: true,\n baseScripts: true,\n templateStyles: true,\n templateScripts: true,\n footerColumnCount: 3,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n controllers: !this.state.controllers,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/theme-name.css'\n ) )}\n checked={this.state.baseStyles}\n onChange={() => {\n this.setState( {\n baseStyles: !this.state.baseStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/theme-name.js'\n ) )}\n checked={this.state.baseScripts}\n onChange={() => {\n this.setState( {\n baseScripts: !this.state.baseScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/templates/template-name.css'\n ) )}\n checked={this.state.templateStyles}\n onChange={() => {\n this.setState( {\n templateStyles: !this.state.templateStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/templates/template-name.js'\n ) )}\n checked={this.state.templateScripts}\n onChange={() => {\n this.setState( {\n templateScripts: !this.state.templateScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n footerColumnCount: value,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n cwp_controllers: this.state.controllers,\n cwp_base_styles: this.state.baseStyles,\n cwp_base_scripts: this.state.baseScripts,\n cwp_template_styles: this.state.templateStyles,\n cwp_template_scripts: this.state.templateScripts,\n cwp_footer_column_count: this.state.footerColumnCount,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n

Remove bloat

\n\n
\n\n
\n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n\n
\n
{__( 'Dashboard meta boxes', 'construct-wp' )}
\n\n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","alias__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","TextControl","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","baseStyles","baseScripts","templateStyles","templateScripts","footerColumnCount","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","cwp_base_styles","cwp_base_scripts","cwp_template_styles","cwp_template_scripts","cwp_footer_column_count","label","help","checked","onChange","disabled","value","variant","isBusy","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","newState","prototype","hasOwnProperty","call","checkbox","area","item","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 5551713..0043b7f 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-11 14:54+0000\n" +"POT-Creation-Date: 2023-10-11 20:03+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -16,169 +16,169 @@ msgstr "" "X-Poedit-SourceCharset: UTF-8\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: plugins/construct-wp/models/class-construct-wp-email.php:66, plugins/construct-wp/models/class-construct-wp-email.php:69 +#: models/class-construct-wp-email.php:66, models/class-construct-wp-email.php:69 msgid "Email" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-email.php:68 +#: models/class-construct-wp-email.php:68 msgid "Emails" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:57 +#: models/class-construct-wp-menu.php:57 msgid "Primary menu" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:58 +#: models/class-construct-wp-menu.php:58 msgid "Footer menu" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:78, plugins/construct-wp/models/class-construct-wp-menu.php:198, plugins/construct-wp/models/class-construct-wp-menu.php:312 +#: models/class-construct-wp-menu.php:78, models/class-construct-wp-menu.php:198, models/class-construct-wp-menu.php:312 msgid "Icon" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:91, plugins/construct-wp/models/class-construct-wp-menu.php:210, plugins/construct-wp/models/class-construct-wp-menu.php:313 +#: models/class-construct-wp-menu.php:91, models/class-construct-wp-menu.php:210, models/class-construct-wp-menu.php:313 msgid "Visibility" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:97, plugins/construct-wp/models/class-construct-wp-menu.php:216 +#: models/class-construct-wp-menu.php:97, models/class-construct-wp-menu.php:216 msgid "Always" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:98, plugins/construct-wp/models/class-construct-wp-menu.php:217 +#: models/class-construct-wp-menu.php:98, models/class-construct-wp-menu.php:217 msgid "Logged in only" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:99, plugins/construct-wp/models/class-construct-wp-menu.php:218 +#: models/class-construct-wp-menu.php:99, models/class-construct-wp-menu.php:218 msgid "Logged out only" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:113, plugins/construct-wp/models/class-construct-wp-menu.php:231, plugins/construct-wp/models/class-construct-wp-menu.php:314 +#: models/class-construct-wp-menu.php:113, models/class-construct-wp-menu.php:231, models/class-construct-wp-menu.php:314 msgid "Logout link" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:119, plugins/construct-wp/models/class-construct-wp-menu.php:237, plugins/construct-wp/models/class-construct-wp-menu.php:315 +#: models/class-construct-wp-menu.php:119, models/class-construct-wp-menu.php:237, models/class-construct-wp-menu.php:315 msgid "Dropdown item type" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:121, plugins/construct-wp/models/class-construct-wp-menu.php:239 +#: models/class-construct-wp-menu.php:121, models/class-construct-wp-menu.php:239 msgid "Link" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:122, plugins/construct-wp/models/class-construct-wp-menu.php:240 +#: models/class-construct-wp-menu.php:122, models/class-construct-wp-menu.php:240 msgid "Header" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:123, plugins/construct-wp/models/class-construct-wp-menu.php:241 +#: models/class-construct-wp-menu.php:123, models/class-construct-wp-menu.php:241 msgid "Divider" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-menu.php:124, plugins/construct-wp/models/class-construct-wp-menu.php:242 +#: models/class-construct-wp-menu.php:124, models/class-construct-wp-menu.php:242 msgid "Text" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:196 +#: models/class-construct-wp-settings.php:196 msgid "ConstructWP Settings" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:197 +#: models/class-construct-wp-settings.php:197 msgid "ConstructWP" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:208 +#: models/class-construct-wp-settings.php:208 msgid "ConstructWP Settings - General" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:209 +#: models/class-construct-wp-settings.php:209 msgid "General" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:217 +#: models/class-construct-wp-settings.php:217 msgid "ConstructWP Settings - Optimize" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:218 +#: models/class-construct-wp-settings.php:218 msgid "Optimize" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-settings.php:278 +#: models/class-construct-wp-settings.php:280 msgid "Settings" msgstr "" #. translators: %1$s - Opening p tag, %2$s - Closing p tag, %3$s - Opening a tag, %4$s - Closing a tag -#: plugins/construct-wp/models/class-construct-wp-updater.php:135 +#: models/class-construct-wp-updater.php:135 msgid "%1$sAn Unexpected HTTP Error occurred during the API request.%2$s %1$s%3$sTry again%4$s%2$s" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-utils.php:178 +#: models/class-construct-wp-utils.php:178 msgid "Page navigation" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-utils.php:197 +#: models/class-construct-wp-utils.php:197 msgid "First" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-utils.php:201 +#: models/class-construct-wp-utils.php:201 msgid "Last" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-utils.php:217 +#: models/class-construct-wp-utils.php:217 msgid "Previous" msgstr "" -#: plugins/construct-wp/models/class-construct-wp-utils.php:221 +#: models/class-construct-wp-utils.php:221 msgid "Next" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:235 +#: models/class-construct-wp.php:235 msgid "No feed available" msgstr "" #. translators: %d Footer column number -#: plugins/construct-wp/models/class-construct-wp.php:307 +#: models/class-construct-wp.php:307 msgid "Footer %d" msgstr "" #. translators: %d Footer column number -#: plugins/construct-wp/models/class-construct-wp.php:313 +#: models/class-construct-wp.php:313 msgid "Add widgets here to appear in your footer column %d" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:474 +#: models/class-construct-wp.php:474 msgid "Logo" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:475 +#: models/class-construct-wp.php:475 msgid "This should be your regular, colored logo." msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:483, plugins/construct-wp/models/class-construct-wp.php:488, plugins/construct-wp/models/class-construct-wp.php:517, plugins/construct-wp/models/class-construct-wp.php:522 +#: models/class-construct-wp.php:483, models/class-construct-wp.php:488, models/class-construct-wp.php:517, models/class-construct-wp.php:522 msgid "Select logo" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:484, plugins/construct-wp/models/class-construct-wp.php:518 +#: models/class-construct-wp.php:484, models/class-construct-wp.php:518 msgid "Change logo" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:485, plugins/construct-wp/models/class-construct-wp.php:519 +#: models/class-construct-wp.php:485, models/class-construct-wp.php:519 msgid "Remove" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:486, plugins/construct-wp/models/class-construct-wp.php:520 +#: models/class-construct-wp.php:486, models/class-construct-wp.php:520 msgid "Default" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:487, plugins/construct-wp/models/class-construct-wp.php:521 +#: models/class-construct-wp.php:487, models/class-construct-wp.php:521 msgid "No logo selected" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:489, plugins/construct-wp/models/class-construct-wp.php:523 +#: models/class-construct-wp.php:489, models/class-construct-wp.php:523 msgid "Choose logo" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:508 +#: models/class-construct-wp.php:508 msgid "White Logo" msgstr "" -#: plugins/construct-wp/models/class-construct-wp.php:509 +#: models/class-construct-wp.php:509 msgid "This should the white version of your logo for placement on colored backgrounds." msgstr "" diff --git a/plugins/construct-wp/languages/js/construct-wp.pot b/plugins/construct-wp/languages/js/construct-wp.pot new file mode 100644 index 0000000..6a0c1ba --- /dev/null +++ b/plugins/construct-wp/languages/js/construct-wp.pot @@ -0,0 +1,203 @@ +# Copyright (C) 2023 ConstructWP +# This file is distributed under the same license as the ConstructWP package. +msgid "" +msgstr "" +"Project-Id-Version: ConstructWP\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language-Team: Andrew Palfrey \n" +"Last-Translator: Andrew Palfrey \n" +"POT-Creation-Date: 2023-10-11 20:03+0000\n" +"X-Poedit-Basepath: ..\n" +"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPathExcluded-0: *.js\n" +"X-Poedit-SourceCharset: UTF-8\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: assets/js/construct-wp-gutenberg.js:42 +msgid "Permalink" +msgstr "" + +#: assets/js/construct-wp-gutenberg.js:44 +msgid "Set the email permalink" +msgstr "" + +#: assets/js/construct-wp-gutenberg.js:45 +msgid "This is used as a reference for this email template. This can be automatically generated on creation." +msgstr "" + +#: assets/js/construct-wp-settings.js:171, assets/js/construct-wp-settings.js:173 +msgid "ConstructWP" +msgstr "" + +#: assets/js/construct-wp-settings.js:271, assets/js/construct-wp-settings.js:275, assets/js/construct-wp-settings.js:417 +msgid "General" +msgstr "" + +#: assets/js/construct-wp-settings.js:276 +msgid "Remove admin bar" +msgstr "" + +#. translators: %s - The capability in a code tag +#: assets/js/construct-wp-settings.js:278 +msgid "Removes the admin bar from the frontend if the user doesn't have the %s capability" +msgstr "" + +#: assets/js/construct-wp-settings.js:287 +msgid "Restrict admin access" +msgstr "" + +#. translators: %s - The capability in a code tag +#: assets/js/construct-wp-settings.js:289 +msgid "Redirects users to the frontend if they try to access the admin area without the %s capability" +msgstr "" + +#: assets/js/construct-wp-settings.js:298 +msgid "Enable controllers" +msgstr "" + +#: assets/js/construct-wp-settings.js:299 +msgid "Enables controllers on the frontend based on the current template file" +msgstr "" + +#: assets/js/construct-wp-settings.js:308 +msgid "Auto-enqueue theme styles" +msgstr "" + +#. translators: %s - An example theme style path +#: assets/js/construct-wp-settings.js:310 +msgid "Automatically enqueues the theme's styles based on the parent and child theme names. e.g. %s" +msgstr "" + +#: assets/js/construct-wp-settings.js:319 +msgid "Auto-enqueue theme scripts" +msgstr "" + +#. translators: %s - An example theme script path +#: assets/js/construct-wp-settings.js:321 +msgid "Automatically enqueues the theme's scripts based on the parent and child theme names. e.g. %s" +msgstr "" + +#: assets/js/construct-wp-settings.js:330 +msgid "Auto-enqueue template styles" +msgstr "" + +#. translators: %s - An example template style path +#: assets/js/construct-wp-settings.js:332 +msgid "Automatically enqueues a template's styles based on the template name. e.g. %s" +msgstr "" + +#: assets/js/construct-wp-settings.js:341 +msgid "Auto-enqueue template scripts" +msgstr "" + +#. translators: %s - An example template script path +#: assets/js/construct-wp-settings.js:343 +msgid "Automatically enqueues a template's scripts based on the template name. e.g. %s" +msgstr "" + +#: assets/js/construct-wp-settings.js:352 +msgid "Footer columns" +msgstr "" + +#: assets/js/construct-wp-settings.js:353 +msgid "The number of footer widget areas to create" +msgstr "" + +#: assets/js/construct-wp-settings.js:403, assets/js/construct-wp-settings.js:578 +msgid "Unable to save settings" +msgstr "" + +#: assets/js/construct-wp-settings.js:396, assets/js/construct-wp-settings.js:571 +msgid "Settings saved!" +msgstr "" + +#: assets/js/construct-wp-settings.js:411, assets/js/construct-wp-settings.js:586 +msgid "Save" +msgstr "" + +#: assets/js/construct-wp-settings.js:492 +msgid "Select all" +msgstr "" + +#: assets/js/construct-wp-settings.js:525, assets/js/construct-wp-settings.js:529, assets/js/construct-wp-settings.js:530, assets/js/construct-wp-settings.js:592 +msgid "Optimize" +msgstr "" + +#: assets/js/construct-wp-settings.js:531 +msgid "Whether to optimize the site to remove bloat" +msgstr "" + +#: assets/js/construct-wp-settings.js:541 +msgid "WordPress" +msgstr "" + +#: assets/js/construct-wp-settings.js:543 +msgid "Feeds" +msgstr "" + +#: assets/js/construct-wp-settings.js:543 +msgid "Really Simple Directory link" +msgstr "" + +#: assets/js/construct-wp-settings.js:543 +msgid "Relational attributes" +msgstr "" + +#: assets/js/construct-wp-settings.js:543 +msgid "Relational links" +msgstr "" + +#: assets/js/construct-wp-settings.js:543 +msgid "Version numbers" +msgstr "" + +#: assets/js/construct-wp-settings.js:543 +msgid "JSON API links" +msgstr "" + +#: assets/js/construct-wp-settings.js:543 +msgid "Emoji" +msgstr "" + +#: assets/js/construct-wp-settings.js:543 +msgid "XML-RPC" +msgstr "" + +#: assets/js/construct-wp-settings.js:543 +msgid "jQuery migrate" +msgstr "" + +#: assets/js/construct-wp-settings.js:543 +msgid "Self pingback" +msgstr "" + +#: assets/js/construct-wp-settings.js:545 +msgid "Dashboard meta boxes" +msgstr "" + +#: assets/js/construct-wp-settings.js:547 +msgid "Welcome panel" +msgstr "" + +#: assets/js/construct-wp-settings.js:547 +msgid "Site health" +msgstr "" + +#: assets/js/construct-wp-settings.js:547 +msgid "At a glance" +msgstr "" + +#: assets/js/construct-wp-settings.js:547 +msgid "Activity" +msgstr "" + +#: assets/js/construct-wp-settings.js:547 +msgid "Quick draft" +msgstr "" + +#: assets/js/construct-wp-settings.js:547 +msgid "Events and news" +msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp-assets.php b/plugins/construct-wp/models/class-construct-wp-assets.php index ccc14cd..3d1bf5f 100644 --- a/plugins/construct-wp/models/class-construct-wp-assets.php +++ b/plugins/construct-wp/models/class-construct-wp-assets.php @@ -211,7 +211,10 @@ public static function admin_enqueue() { public static function customizer_enqueue() { wp_enqueue_script( 'cwp-customizer', CWP_PLUGIN_URL . 'assets/js/construct-wp-customizer.js', array( 'customize-nav-menus', + 'wp-i18n', ), filemtime( CWP_PLUGIN_PATH . '/assets/js/construct-wp-customizer.js' ), true ); + + wp_set_script_translations( 'cwp-customizer', 'construct-wp', CWP_PLUGIN_PATH . 'languages/js' ); } /** diff --git a/plugins/construct-wp/models/class-construct-wp-gutenberg.php b/plugins/construct-wp/models/class-construct-wp-gutenberg.php index 3afab30..69e6421 100644 --- a/plugins/construct-wp/models/class-construct-wp-gutenberg.php +++ b/plugins/construct-wp/models/class-construct-wp-gutenberg.php @@ -42,6 +42,8 @@ public static function enqueue_assets() { 'wp-plugins', ), true ); wp_enqueue_style( 'cwp-gutenberg', CWP_PLUGIN_URL . 'assets/css/construct-wp-gutenberg.css', array( 'wp-edit-blocks' ), true ); + + wp_set_script_translations( 'cwp-gutenberg', 'construct-wp', CWP_PLUGIN_PATH . 'languages/js' ); } } diff --git a/plugins/construct-wp/models/class-construct-wp-settings.php b/plugins/construct-wp/models/class-construct-wp-settings.php index aa7a473..53b6fc4 100644 --- a/plugins/construct-wp/models/class-construct-wp-settings.php +++ b/plugins/construct-wp/models/class-construct-wp-settings.php @@ -244,10 +244,10 @@ public static function render_page() { */ public static function admin_enqueue( $hook_suffix ) { if ( strpos( $hook_suffix, 'construct-wp' ) !== false ) { - wp_enqueue_style( 'construct-wp-settings-style', CWP_PLUGIN_URL . 'assets/css/construct-wp-settings.css', array( + wp_enqueue_style( 'cwp-settings', CWP_PLUGIN_URL . 'assets/css/construct-wp-settings.css', array( 'wp-components', ) ); - wp_enqueue_script( 'construct-wp-settings-script', CWP_PLUGIN_URL . 'assets/js/construct-wp-settings.js', array( + wp_enqueue_script( 'cwp-settings', CWP_PLUGIN_URL . 'assets/js/construct-wp-settings.js', array( 'wp-api', 'wp-components', 'wp-data', @@ -255,10 +255,12 @@ public static function admin_enqueue( $hook_suffix ) { 'wp-hooks', 'wp-i18n', 'wp-notices', - ) ); - wp_localize_script( 'construct-wp-settings-script', 'cwpSettingsData', array( + ), false, true ); + wp_localize_script( 'cwp-settings', 'cwpSettingsData', array( 'version' => CWP_VERSION, ) ); + + wp_set_script_translations( 'cwp-settings', 'construct-wp', CWP_PLUGIN_PATH . 'languages/js' ); } } diff --git a/plugins/construct-wp/models/class-construct-wp.php b/plugins/construct-wp/models/class-construct-wp.php index 5c7f505..ede7f4a 100644 --- a/plugins/construct-wp/models/class-construct-wp.php +++ b/plugins/construct-wp/models/class-construct-wp.php @@ -264,7 +264,7 @@ public static function disable_script_version( $src ) { * @return void */ public static function load_textdomain() { - load_plugin_textdomain( CWP_SLUG, false, CWP_PLUGIN_PATH . 'languages' ); + load_plugin_textdomain( CWP_SLUG, false, dirname( CWP_BASENAME ) . 'languages' ); // TODO autoload theme textdomain. } diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx index c33b8ad..bfa1245 100644 --- a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx +++ b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx @@ -74,6 +74,7 @@ class GeneralTab extends Component { cwp_view_admin_dashboard' ) )} @@ -89,6 +90,7 @@ class GeneralTab extends Component { cwp_view_admin_dashboard' ) )} @@ -116,6 +118,7 @@ class GeneralTab extends Component { /assets/css/theme-name.css' ) )} @@ -131,6 +134,7 @@ class GeneralTab extends Component { /assets/js/theme-name.js' ) )} @@ -146,6 +150,7 @@ class GeneralTab extends Component { /assets/css/templates/template-name.css' ) )} @@ -161,6 +166,7 @@ class GeneralTab extends Component { /assets/js/templates/template-name.js' ) )} diff --git a/plugins/construct-wp/src/gutenberg/panels/email/index.jsx b/plugins/construct-wp/src/gutenberg/panels/email/index.jsx index 58fdda8..c225ca4 100644 --- a/plugins/construct-wp/src/gutenberg/panels/email/index.jsx +++ b/plugins/construct-wp/src/gutenberg/panels/email/index.jsx @@ -31,7 +31,7 @@ function EmailPanel() { return ( Date: Thu, 12 Oct 2023 16:17:03 +0100 Subject: [PATCH 19/27] Added po to json functionality Required for JS translations --- .gulpconfig.js | 16 +- .vscode/bookmarks.json | 2 +- gulpfile.js | 28 ++ .../languages/construct-wp-en_GB.mo | Bin 0 -> 2959 bytes .../languages/construct-wp-en_GB.po | 205 +++++++++++++++ .../construct-wp/languages/construct-wp.pot | 2 +- ...n_GB-151f44c8255583f07705eeaa4dca6728.json | 24 ++ ...n_GB-4970dbb0a17c20971e00b1bf045439b2.json | 141 ++++++++++ .../languages/js/construct-wp-en_GB.mo | Bin 0 -> 4312 bytes .../languages/js/construct-wp-en_GB.po | 245 ++++++++++++++++++ .../languages/js/construct-wp.pot | 2 +- 11 files changed, 660 insertions(+), 5 deletions(-) create mode 100644 plugins/construct-wp/languages/construct-wp-en_GB.mo create mode 100644 plugins/construct-wp/languages/construct-wp-en_GB.po create mode 100644 plugins/construct-wp/languages/js/construct-wp-en_GB-151f44c8255583f07705eeaa4dca6728.json create mode 100644 plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json create mode 100644 plugins/construct-wp/languages/js/construct-wp-en_GB.mo create mode 100644 plugins/construct-wp/languages/js/construct-wp-en_GB.po diff --git a/.gulpconfig.js b/.gulpconfig.js index 064dc65..2e21959 100644 --- a/.gulpconfig.js +++ b/.gulpconfig.js @@ -393,7 +393,7 @@ module.exports = { ...translatePipes.pot, domain: areas.constructWp.name, package: areas.constructWp.title, - relativeTo: 'plugins/construct-wp', + relativeTo: areas.constructWp.path, }, }, }, @@ -417,7 +417,7 @@ module.exports = { ...translatePipes.pot, domain: areas.constructWp.name, package: areas.constructWp.title, - relativeTo: 'plugins/construct-wp', + relativeTo: areas.constructWp.path, parser: 'js', parserOptions: { ecmaVersion: 9, @@ -428,6 +428,18 @@ module.exports = { ], pipes: translatePipes, }, + po2json: { + process: true, + watch: true, + paths: [ + `${areas.constructWp.path}/languages/**/*.po`, + ], + bin: 'vendor/bin/wp', + pretty: true, + execSync: { + shell: 'C:\\Program Files\\Git\\bin\\bash.exe', + }, + }, browsersync: { watch: true, browsersync: { diff --git a/.vscode/bookmarks.json b/.vscode/bookmarks.json index e717fab..cd616ef 100644 --- a/.vscode/bookmarks.json +++ b/.vscode/bookmarks.json @@ -4,7 +4,7 @@ "path": ".gulpconfig.js", "bookmarks": [ { - "line": 7, + "line": 6, "column": 18, "label": "Version number" } diff --git a/gulpfile.js b/gulpfile.js index fad9f59..423d0a6 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -9,4 +9,32 @@ require( '@ilabdev/webpack' )( gulp ) require( '@ilabdev/translate' )( gulp ) require( '@ilabdev/browsersync' )( gulp ) require( '@ilabdev/archive' )( gulp ) + +const { glob } = require( 'glob' ) +const { execSync } = require( 'node:child_process' ) +const { + logger, +} = require( '@ilabdev/utils' ) +const config = require( `${process.cwd()}/.gulpconfig.js` ).po2json +const logColor = config.logColor || 'black' + +gulp.task( 'translate:json', ( cb ) => { + if ( config.process ) { + logger.log( 'Converting PO to JSON...', logColor ) + } + + let files = [] + + config.paths.forEach( ( dir ) => { + files = files.concat( glob( dir, { sync: true, stat: true, withFileTypes: true } ) ) + } ) + + files.forEach( ( file ) => { + execSync( `${config.bin} i18n make-json ${file} --no-purge ${config.pretty ? '--pretty-print' : ''}`, config.execSync ) + } ) + + logger.log( 'PO to JSON conversion complete!', logColor ) + return cb() +} ) + require( '@ilabdev/default' )( gulp ) diff --git a/plugins/construct-wp/languages/construct-wp-en_GB.mo b/plugins/construct-wp/languages/construct-wp-en_GB.mo new file mode 100644 index 0000000000000000000000000000000000000000..018d1d498c694c032b1f8b827836c0ceff3cf2a5 GIT binary patch literal 2959 zcmeH{OK)5?6vqv;Jcja0d9*;OTN2ua+@Wa-Diea5Hc1NQy<<;p z-%O@bS7iZfR0$zI04*C9ELe2G0wh4<3ls^dJ6M3k0t8~i|IBq}f@mcchy}tL-=BT# zbA0@_$KMWZxWZ6IQJ+T5?qF;ZynZJ>C?DL#*z4d`a01-8fw8;6m%;nNgMkZyXTe8d zPrzruF1Q_h7rY1jB=A#k2>ma>jo>#R#l0E&-+}j`|0782{0fr)227@Tn?RV@=D;n1 z+rS55-w8ehjtBcRNO9&ue-V5H{WIXhpaSm&FM{NEIrQHFH=+MNNb6n&Db7b>{5nW^ zd=8R^Ux8KdXRrj$!HIYhyaY|(07=gqSd8?137e$2=Rk^kA@EY*+aT$A1tdMMfu!e` zAnEaa;7=gw`5TC(*(NMXafd+aZv`>Lwu7|J9+3QB1ZmzBNc)%xoDVz>lAcQ->9QQ` z7Nj_x(7z0lo^OGq=X)UO`5{PtABX;DAnExvNbBAJDbCF>{sTyP`~p4?{tli5cVQBm ztQ+_yh^zXSvKbb-x)ftKDrrXfKZ{EKqy_0od&iaTm2LQPRLXxRDiz9o1eJ1p0`)Oe zDx~pRc|0_Bflr0@4)94-+VlGI06Ke6M^T4S>AyzjNLtXjkY>-JZb7Aj?e)u6YK@E! zyJ^i&X}Q{#v6l%yTB}w0thL5+6UVu=uqC-wI_178`E+%jTX`Xu&X-5_4LeQ|Mka<` z&33s+h0-JYVZaERP7>ZxNh-bLO=%_fhKqJv3d@z|U6WhhFvd&EW0U1A%|{Y8opnUl zvBOQFQ^_-v8nlgZYi*;Qw|VT(RN3J{n=eW4ks%y!VdN1%BDJ(4yWQ}KwpT56QL-7? z5P9a=j9O8Nv~0$jc49i3D=%BzciWQ9wuH)xuVZt{I?v{cT_F9?YDt~5wKb1QL80bj zquGMM^aZ8Qvjvl;P!>WMopsl`CinfmAtMXsDLJVfB(+lr6I&*;3EF(7Uf?jh3u6mE*2y@+{%Y zvN$y>(>xP)jLyx_{h$=ef0{~HrPG9Jd_`J^^|@&j&b@RSxLxf`#1cu+j{A|8MSMQB zCfA88v(w6{WtA!4WoLS^ND$<2&S9_7d=i~5VpsUOV=pbrwy{1s=2DeJhw{`#HB;fG z>WOF(3Q#W5jPMdBI*q7ig?5?n##Z>WPOR+ks>m8vcKIu!U9`pz=5Z!;S;Xc1{HyTO zX%2a#niQ?udmUVJFSq2tsluhMA30PyHh*k(uz~UN-V!$9AxBihHLGwB^B2* zDXf!z>QrqmIxv_=nKz`3W_4^5T>lC`u&jKkn&r6b(VVd@SK+$d>$<6ZlaQQ7rgm$- zV~UUOnJk@+szxTtM~8%yZQ+|0UM>%;ugPx5*u*U;=PSHkpR7y#Rx9IU`{K#ECIWSB zOgprDV`KYibhU3En?OH!Nf+0J_ZGqWO*v?;o7MEKEX?XPi&?#9F>8?L65f(n;?W?L zD!h>CY*hRMdna3LlTVcQuk*r76gR8bb+i}zzSY3&YMkYXOlZPr`J5~L|6ryL?`iSM Yxc|\n" +"Language-Team: Andrew Palfrey \n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Basepath: ..\n" +"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 3.4\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPathExcluded-0: *.js\n" + +#: models/class-construct-wp-email.php:66, +#: models/class-construct-wp-email.php:69 +msgid "Email" +msgstr "Email" + +#: models/class-construct-wp-email.php:68 +msgid "Emails" +msgstr "Emails" + +#: models/class-construct-wp-menu.php:57 +msgid "Primary menu" +msgstr "Primary menu" + +#: models/class-construct-wp-menu.php:58 +msgid "Footer menu" +msgstr "Footer menu" + +#: models/class-construct-wp-menu.php:78, +#: models/class-construct-wp-menu.php:198, +#: models/class-construct-wp-menu.php:312 +msgid "Icon" +msgstr "Icon" + +#: models/class-construct-wp-menu.php:91, +#: models/class-construct-wp-menu.php:210, +#: models/class-construct-wp-menu.php:313 +msgid "Visibility" +msgstr "Visibility" + +#: models/class-construct-wp-menu.php:97, +#: models/class-construct-wp-menu.php:216 +msgid "Always" +msgstr "Always" + +#: models/class-construct-wp-menu.php:98, +#: models/class-construct-wp-menu.php:217 +msgid "Logged in only" +msgstr "Logged in only" + +#: models/class-construct-wp-menu.php:99, +#: models/class-construct-wp-menu.php:218 +msgid "Logged out only" +msgstr "Logged out only" + +#: models/class-construct-wp-menu.php:113, +#: models/class-construct-wp-menu.php:231, +#: models/class-construct-wp-menu.php:314 +msgid "Logout link" +msgstr "Logout link" + +#: models/class-construct-wp-menu.php:119, +#: models/class-construct-wp-menu.php:237, +#: models/class-construct-wp-menu.php:315 +msgid "Dropdown item type" +msgstr "Dropdown item type" + +#: models/class-construct-wp-menu.php:121, +#: models/class-construct-wp-menu.php:239 +msgid "Link" +msgstr "Link" + +#: models/class-construct-wp-menu.php:122, +#: models/class-construct-wp-menu.php:240 +msgid "Header" +msgstr "Header" + +#: models/class-construct-wp-menu.php:123, +#: models/class-construct-wp-menu.php:241 +msgid "Divider" +msgstr "Divider" + +#: models/class-construct-wp-menu.php:124, +#: models/class-construct-wp-menu.php:242 +msgid "Text" +msgstr "Text" + +#: models/class-construct-wp-settings.php:196 +msgid "ConstructWP Settings" +msgstr "ConstructWP Settings" + +#: models/class-construct-wp-settings.php:197 +msgid "ConstructWP" +msgstr "ConstructWP" + +#: models/class-construct-wp-settings.php:208 +msgid "ConstructWP Settings - General" +msgstr "ConstructWP Settings - General" + +#: models/class-construct-wp-settings.php:209 +msgid "General" +msgstr "General" + +#: models/class-construct-wp-settings.php:217 +msgid "ConstructWP Settings - Optimize" +msgstr "ConstructWP Settings - Optimise" + +#: models/class-construct-wp-settings.php:218 +msgid "Optimize" +msgstr "Optimise" + +#: models/class-construct-wp-settings.php:280 +msgid "Settings" +msgstr "Settings" + +#. translators: %1$s - Opening p tag, %2$s - Closing p tag, %3$s - Opening a tag, %4$s - Closing a tag +#: models/class-construct-wp-updater.php:135 +msgid "%1$sAn Unexpected HTTP Error occurred during the API request.%2$s %1$s%3$sTry again%4$s%2$s" +msgstr "%1$sAn Unexpected HTTP Error occurred during the API request.%2$s %1$s%3$sTry again%4$s%2$s" + +#: models/class-construct-wp-utils.php:178 +msgid "Page navigation" +msgstr "Page navigation" + +#: models/class-construct-wp-utils.php:197 +msgid "First" +msgstr "First" + +#: models/class-construct-wp-utils.php:201 +msgid "Last" +msgstr "Last" + +#: models/class-construct-wp-utils.php:217 +msgid "Previous" +msgstr "Previous" + +#: models/class-construct-wp-utils.php:221 +msgid "Next" +msgstr "Next" + +#: models/class-construct-wp.php:235 +msgid "No feed available" +msgstr "No feed available" + +#. translators: %d Footer column number +#: models/class-construct-wp.php:307 +msgid "Footer %d" +msgstr "Footer %d" + +#. translators: %d Footer column number +#: models/class-construct-wp.php:313 +msgid "Add widgets here to appear in your footer column %d" +msgstr "Add widgets here to appear in your footer column %d" + +#: models/class-construct-wp.php:474 +msgid "Logo" +msgstr "Logo" + +#: models/class-construct-wp.php:475 +msgid "This should be your regular, colored logo." +msgstr "This should be your regular, coloured logo." + +#: models/class-construct-wp.php:483, models/class-construct-wp.php:488, +#: models/class-construct-wp.php:517, models/class-construct-wp.php:522 +msgid "Select logo" +msgstr "Select logo" + +#: models/class-construct-wp.php:484, models/class-construct-wp.php:518 +msgid "Change logo" +msgstr "Change logo" + +#: models/class-construct-wp.php:485, models/class-construct-wp.php:519 +msgid "Remove" +msgstr "Remove" + +#: models/class-construct-wp.php:486, models/class-construct-wp.php:520 +msgid "Default" +msgstr "Default" + +#: models/class-construct-wp.php:487, models/class-construct-wp.php:521 +msgid "No logo selected" +msgstr "No logo selected" + +#: models/class-construct-wp.php:489, models/class-construct-wp.php:523 +msgid "Choose logo" +msgstr "Choose logo" + +#: models/class-construct-wp.php:508 +msgid "White Logo" +msgstr "White Logo" + +#: models/class-construct-wp.php:509 +msgid "This should the white version of your logo for placement on colored backgrounds." +msgstr "This should the white version of your logo for placement on coloured backgrounds." diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 0043b7f..18e214d 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-11 20:03+0000\n" +"POT-Creation-Date: 2023-10-12 11:45+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" diff --git a/plugins/construct-wp/languages/js/construct-wp-en_GB-151f44c8255583f07705eeaa4dca6728.json b/plugins/construct-wp/languages/js/construct-wp-en_GB-151f44c8255583f07705eeaa4dca6728.json new file mode 100644 index 0000000..bb1f376 --- /dev/null +++ b/plugins/construct-wp/languages/js/construct-wp-en_GB-151f44c8255583f07705eeaa4dca6728.json @@ -0,0 +1,24 @@ +{ + "translation-revision-date": "", + "generator": "WP-CLI\/2.8.1", + "source": "assets\/js\/construct-wp-gutenberg.js", + "domain": "messages", + "locale_data": { + "messages": { + "": { + "domain": "messages", + "lang": "en_GB", + "plural-forms": "nplurals=2; plural=(n != 1);" + }, + "Permalink": [ + "Permalink" + ], + "Set the email permalink": [ + "Set the email permalink" + ], + "This is used as a reference for this email template. This can be automatically generated on creation.": [ + "This is used as a reference for this email template. This can be automatically generated on creation." + ] + } + } +} \ No newline at end of file diff --git a/plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json b/plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json new file mode 100644 index 0000000..47ce4b2 --- /dev/null +++ b/plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json @@ -0,0 +1,141 @@ +{ + "translation-revision-date": "", + "generator": "WP-CLI\/2.8.1", + "source": "assets\/js\/construct-wp-settings.js", + "domain": "messages", + "locale_data": { + "messages": { + "": { + "domain": "messages", + "lang": "en_GB", + "plural-forms": "nplurals=2; plural=(n != 1);" + }, + "ConstructWP": [ + "ConstructWP" + ], + "General": [ + "General" + ], + "Remove admin bar": [ + "Remove admin bar" + ], + "Removes the admin bar from the frontend if the user doesn't have the %s capability": [ + "Removes the admin bar from the frontend if the user doesn't have the %s capability" + ], + "Restrict admin access": [ + "Restrict admin access" + ], + "Redirects users to the frontend if they try to access the admin area without the %s capability": [ + "Redirects users to the frontend if they try to access the admin area without the %s capability" + ], + "Enable controllers": [ + "Enable controllers" + ], + "Enables controllers on the frontend based on the current template file": [ + "Enables controllers on the frontend based on the current template file" + ], + "Auto-enqueue theme styles": [ + "Auto-enqueue theme styles" + ], + "Automatically enqueues the theme's styles based on the parent and child theme names. e.g. %s": [ + "Automatically enqueues the theme's styles based on the parent and child theme names. e.g. %s" + ], + "Auto-enqueue theme scripts": [ + "Auto-enqueue theme scripts" + ], + "Automatically enqueues the theme's scripts based on the parent and child theme names. e.g. %s": [ + "Automatically enqueues the theme's scripts based on the parent and child theme names. e.g. %s" + ], + "Auto-enqueue template styles": [ + "Auto-enqueue template styles" + ], + "Automatically enqueues a template's styles based on the template name. e.g. %s": [ + "Automatically enqueues a template's styles based on the template name. e.g. %s" + ], + "Auto-enqueue template scripts": [ + "Auto-enqueue template scripts" + ], + "Automatically enqueues a template's scripts based on the template name. e.g. %s": [ + "Automatically enqueues a template's scripts based on the template name. e.g. %s" + ], + "Footer columns": [ + "Footer columns" + ], + "The number of footer widget areas to create": [ + "The number of footer widget areas to create" + ], + "Unable to save settings": [ + "Unable to save settings" + ], + "Settings saved!": [ + "Settings saved!" + ], + "Save": [ + "Save" + ], + "Select all": [ + "Select all" + ], + "Optimize": [ + "Optimise" + ], + "Whether to optimize the site to remove bloat": [ + "Whether to optimise the site to remove bloat" + ], + "WordPress": [ + "WordPress" + ], + "Feeds": [ + "Feeds" + ], + "Really Simple Directory link": [ + "Really Simple Directory link" + ], + "Relational attributes": [ + "Relational attributes" + ], + "Relational links": [ + "Relational links" + ], + "Version numbers": [ + "Version numbers" + ], + "JSON API links": [ + "JSON API links" + ], + "Emoji": [ + "Emoji" + ], + "XML-RPC": [ + "XML-RPC" + ], + "jQuery migrate": [ + "jQuery migrate" + ], + "Self pingback": [ + "Self pingback" + ], + "Dashboard meta boxes": [ + "Dashboard meta boxes" + ], + "Welcome panel": [ + "Welcome panel" + ], + "Site health": [ + "Site health" + ], + "At a glance": [ + "At a glance" + ], + "Activity": [ + "Activity" + ], + "Quick draft": [ + "Quick draft" + ], + "Events and news": [ + "Events and news" + ] + } + } +} \ No newline at end of file diff --git a/plugins/construct-wp/languages/js/construct-wp-en_GB.mo b/plugins/construct-wp/languages/js/construct-wp-en_GB.mo new file mode 100644 index 0000000000000000000000000000000000000000..f17f101a3a175efaa430cbef9baf75f5fd4756b0 GIT binary patch literal 4312 zcmeH}ON&Wc1=m4#q?;UNq5!n5Y*ICdP{~dNOiRV@&k>clYcpgbfD6jm}j6s_Xgv zzpCn=H9zc5SCdLN9zi-A3*KaErTLWGMZv+1Vw}7iw7VWo#oA5jc-VZ(v zj)Jq`Dew#M8F1q*r~@5H<9q|&4So;e$1dWw0sI3T1}m!=TL+#7sa}9y|UBXAG+8AyKr3R1fXOoA*+KRh{!AuZG&)ww@3=7UId-Gj6(&lNXX2lBM1ETeJhdbmJ7|5oHl zA9?-=(w#`OZWIGu+mWy}b8VYJ@-{@;fkg4*xG^jxy9=pvl}D4^hk}R7LfRt%62(f_ z?gEU1mz{X!xy zuWZS5xqd}ew^J&-ibRqu@N!}YJ)OCCxX$dnE}V?H(cHI|XwxEHEh)}k6J2;NizH(t?sH~FB$y`TL0VNM~!ygW|5z)v17uu>PFa@ zr_u{vH}hDpq0~$(Hl#&8kvuZmTazTxq9QMHOUpX0H!RvoM0LqpM48RQ?W`GZs6?`% zSy+IjL~AYQ92=H0#@!e%Eyhl=R68~zwX`B(kB^U@;)Av0JW+bavC+0ysd_=OnzX5) zGIlys(F~8RXm~az^X)ROusMEhrGA3~(l+hyL!h5UgnTMH6N{a}_WNKzR zL)L{w3o2MT5lT5!rB{-dYv-|%PVex%B`_2zyj%)aSVh=ph44HQHjc(@Tqf{@!zRi$ zcw6aaT|_f@DuR-!Pzi4@+KY0JHaKnQ9&csi3g^BBpM8r>U}l}Ab*!6d@J6wMb1H6P zEOIONI6}rtv{jDd2k&E!8o{k>NNkTtqNha^s4OP$Y?qMdog$%m9gg7*)IGt?e1G`j z+~-rk`jDL|b}g2VaGRutM| z&FYB}o=qAX*DSUMJA3j(FjhOtrcY-QdnQ#)OOe*BnTE%~@i-`_t@0&@u2LHf#^kIb zJ;5<_sPf7Q;e0S*g?89O##Z^Dj;);IHIXzdw&Y{jW_hmfa2DZ(9EvE+W)7jBZf2q> zg9$0p<$E3ObPrS6?Nr5Ub!y~D<>c{`LtUkP;ob_=;xI$eLL2J5ocE97eXn#sURuJ! z)PXY-!@7sO z^;gaYHG}i%gClsEw}o$2c^Gy}pO6c4@ZFtI&R6-=RR5I3Z@${syD#dW(nMfN8`CcH zd0p=Ts-0gf@7<5*vX^wx6dhCywwRUO?2=Y3pC)CiJX^HNvqh_}&T*63NFFU*s`A37 zvqAAT%U8AtlkX1?Ea@eMjaoHC9qdKiSE?AAkCH5wF*Vp7PP@vD&onm5HGcK!jfr&Q gGhO^;x?Z1YcjGgC<1\n" +"Language-Team: Andrew Palfrey \n" +"Language: en_GB\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Basepath: ..\n" +"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;" +"_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;" +"esc_html_e;esc_html_x:1,2c\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Generator: Poedit 3.4\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPathExcluded-0: *.js\n" + +#: assets/js/construct-wp-gutenberg.js:42 +msgid "Permalink" +msgstr "Permalink" + +#: assets/js/construct-wp-gutenberg.js:44 +msgid "Set the email permalink" +msgstr "Set the email permalink" + +#: assets/js/construct-wp-gutenberg.js:45 +msgid "" +"This is used as a reference for this email template. This can be " +"automatically generated on creation." +msgstr "" +"This is used as a reference for this email template. This can be " +"automatically generated on creation." + +#: assets/js/construct-wp-settings.js:171, +#: assets/js/construct-wp-settings.js:173 +msgid "ConstructWP" +msgstr "ConstructWP" + +#: assets/js/construct-wp-settings.js:271, +#: assets/js/construct-wp-settings.js:275, +#: assets/js/construct-wp-settings.js:417 +msgid "General" +msgstr "General" + +#: assets/js/construct-wp-settings.js:276 +msgid "Remove admin bar" +msgstr "Remove admin bar" + +#. translators: %s - The capability in a code tag +#: assets/js/construct-wp-settings.js:278 +msgid "" +"Removes the admin bar from the frontend if the user doesn't have the %s " +"capability" +msgstr "" +"Removes the admin bar from the frontend if the user doesn't have the %s " +"capability" + +#: assets/js/construct-wp-settings.js:287 +msgid "Restrict admin access" +msgstr "Restrict admin access" + +#. translators: %s - The capability in a code tag +#: assets/js/construct-wp-settings.js:289 +msgid "" +"Redirects users to the frontend if they try to access the admin area without " +"the %s capability" +msgstr "" +"Redirects users to the frontend if they try to access the admin area without " +"the %s capability" + +#: assets/js/construct-wp-settings.js:298 +msgid "Enable controllers" +msgstr "Enable controllers" + +#: assets/js/construct-wp-settings.js:299 +msgid "Enables controllers on the frontend based on the current template file" +msgstr "Enables controllers on the frontend based on the current template file" + +#: assets/js/construct-wp-settings.js:308 +msgid "Auto-enqueue theme styles" +msgstr "Auto-enqueue theme styles" + +#. translators: %s - An example theme style path +#: assets/js/construct-wp-settings.js:310 +msgid "" +"Automatically enqueues the theme's styles based on the parent and child " +"theme names. e.g. %s" +msgstr "" +"Automatically enqueues the theme's styles based on the parent and child " +"theme names. e.g. %s" + +#: assets/js/construct-wp-settings.js:319 +msgid "Auto-enqueue theme scripts" +msgstr "Auto-enqueue theme scripts" + +#. translators: %s - An example theme script path +#: assets/js/construct-wp-settings.js:321 +msgid "" +"Automatically enqueues the theme's scripts based on the parent and child " +"theme names. e.g. %s" +msgstr "" +"Automatically enqueues the theme's scripts based on the parent and child " +"theme names. e.g. %s" + +#: assets/js/construct-wp-settings.js:330 +msgid "Auto-enqueue template styles" +msgstr "Auto-enqueue template styles" + +#. translators: %s - An example template style path +#: assets/js/construct-wp-settings.js:332 +msgid "" +"Automatically enqueues a template's styles based on the template name. e.g. " +"%s" +msgstr "" +"Automatically enqueues a template's styles based on the template name. e.g. " +"%s" + +#: assets/js/construct-wp-settings.js:341 +msgid "Auto-enqueue template scripts" +msgstr "Auto-enqueue template scripts" + +#. translators: %s - An example template script path +#: assets/js/construct-wp-settings.js:343 +msgid "" +"Automatically enqueues a template's scripts based on the template name. e.g. " +"%s" +msgstr "" +"Automatically enqueues a template's scripts based on the template name. e.g. " +"%s" + +#: assets/js/construct-wp-settings.js:352 +msgid "Footer columns" +msgstr "Footer columns" + +#: assets/js/construct-wp-settings.js:353 +msgid "The number of footer widget areas to create" +msgstr "The number of footer widget areas to create" + +#: assets/js/construct-wp-settings.js:403, +#: assets/js/construct-wp-settings.js:578 +msgid "Unable to save settings" +msgstr "Unable to save settings" + +#: assets/js/construct-wp-settings.js:396, +#: assets/js/construct-wp-settings.js:571 +msgid "Settings saved!" +msgstr "Settings saved!" + +#: assets/js/construct-wp-settings.js:411, +#: assets/js/construct-wp-settings.js:586 +msgid "Save" +msgstr "Save" + +#: assets/js/construct-wp-settings.js:492 +msgid "Select all" +msgstr "Select all" + +#: assets/js/construct-wp-settings.js:525, +#: assets/js/construct-wp-settings.js:529, +#: assets/js/construct-wp-settings.js:530, +#: assets/js/construct-wp-settings.js:592 +msgid "Optimize" +msgstr "Optimise" + +#: assets/js/construct-wp-settings.js:531 +msgid "Whether to optimize the site to remove bloat" +msgstr "Whether to optimise the site to remove bloat" + +#: assets/js/construct-wp-settings.js:541 +msgid "WordPress" +msgstr "WordPress" + +#: assets/js/construct-wp-settings.js:543 +msgid "Feeds" +msgstr "Feeds" + +#: assets/js/construct-wp-settings.js:543 +msgid "Really Simple Directory link" +msgstr "Really Simple Directory link" + +#: assets/js/construct-wp-settings.js:543 +msgid "Relational attributes" +msgstr "Relational attributes" + +#: assets/js/construct-wp-settings.js:543 +msgid "Relational links" +msgstr "Relational links" + +#: assets/js/construct-wp-settings.js:543 +msgid "Version numbers" +msgstr "Version numbers" + +#: assets/js/construct-wp-settings.js:543 +msgid "JSON API links" +msgstr "JSON API links" + +#: assets/js/construct-wp-settings.js:543 +msgid "Emoji" +msgstr "Emoji" + +#: assets/js/construct-wp-settings.js:543 +msgid "XML-RPC" +msgstr "XML-RPC" + +#: assets/js/construct-wp-settings.js:543 +msgid "jQuery migrate" +msgstr "jQuery migrate" + +#: assets/js/construct-wp-settings.js:543 +msgid "Self pingback" +msgstr "Self pingback" + +#: assets/js/construct-wp-settings.js:545 +msgid "Dashboard meta boxes" +msgstr "Dashboard meta boxes" + +#: assets/js/construct-wp-settings.js:547 +msgid "Welcome panel" +msgstr "Welcome panel" + +#: assets/js/construct-wp-settings.js:547 +msgid "Site health" +msgstr "Site health" + +#: assets/js/construct-wp-settings.js:547 +msgid "At a glance" +msgstr "At a glance" + +#: assets/js/construct-wp-settings.js:547 +msgid "Activity" +msgstr "Activity" + +#: assets/js/construct-wp-settings.js:547 +msgid "Quick draft" +msgstr "Quick draft" + +#: assets/js/construct-wp-settings.js:547 +msgid "Events and news" +msgstr "Events and news" diff --git a/plugins/construct-wp/languages/js/construct-wp.pot b/plugins/construct-wp/languages/js/construct-wp.pot index 6a0c1ba..7c308c9 100644 --- a/plugins/construct-wp/languages/js/construct-wp.pot +++ b/plugins/construct-wp/languages/js/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-11 20:03+0000\n" +"POT-Creation-Date: 2023-10-12 11:45+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" From 26e21643c686bcd96e29798b2f492ce6e954af1a Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Mon, 16 Oct 2023 17:25:03 +0100 Subject: [PATCH 20/27] Allow pagination query passthrough --- plugins/construct-wp/languages/construct-wp.pot | 12 ++++++------ plugins/construct-wp/languages/js/construct-wp.pot | 2 +- .../construct-wp/models/class-construct-wp-utils.php | 6 ++++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 18e214d..1796797 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-12 11:45+0000\n" +"POT-Creation-Date: 2023-10-16 16:24+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -109,23 +109,23 @@ msgstr "" msgid "%1$sAn Unexpected HTTP Error occurred during the API request.%2$s %1$s%3$sTry again%4$s%2$s" msgstr "" -#: models/class-construct-wp-utils.php:178 +#: models/class-construct-wp-utils.php:180 msgid "Page navigation" msgstr "" -#: models/class-construct-wp-utils.php:197 +#: models/class-construct-wp-utils.php:199 msgid "First" msgstr "" -#: models/class-construct-wp-utils.php:201 +#: models/class-construct-wp-utils.php:203 msgid "Last" msgstr "" -#: models/class-construct-wp-utils.php:217 +#: models/class-construct-wp-utils.php:219 msgid "Previous" msgstr "" -#: models/class-construct-wp-utils.php:221 +#: models/class-construct-wp-utils.php:223 msgid "Next" msgstr "" diff --git a/plugins/construct-wp/languages/js/construct-wp.pot b/plugins/construct-wp/languages/js/construct-wp.pot index 7c308c9..2bfbd6c 100644 --- a/plugins/construct-wp/languages/js/construct-wp.pot +++ b/plugins/construct-wp/languages/js/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-12 11:45+0000\n" +"POT-Creation-Date: 2023-10-16 16:24+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" diff --git a/plugins/construct-wp/models/class-construct-wp-utils.php b/plugins/construct-wp/models/class-construct-wp-utils.php index 24d738a..39d1ad2 100644 --- a/plugins/construct-wp/models/class-construct-wp-utils.php +++ b/plugins/construct-wp/models/class-construct-wp-utils.php @@ -169,8 +169,10 @@ public static function html_atts( $atts = array() ) { * @param boolean $display Whether to display the pagination * @return string The pagination HTML */ - public static function pagination( $link_args = array(), $args = array(), $display = true ) { - global $wp_query; + public static function pagination( $link_args = array(), $args = array(), $wp_query = false, $display = true ) { + if ( !$wp_query ) { + global $wp_query; + } $args = wp_parse_args( $args, array( 'paged' => max( 1, get_query_var( 'paged' ) ), From a679242b26568a9658dac8d827b571bee8acf73e Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Mon, 16 Oct 2023 17:28:21 +0100 Subject: [PATCH 21/27] Some phpcs fixes --- plugins/construct-wp/languages/construct-wp.pot | 12 ++++++------ plugins/construct-wp/languages/js/construct-wp.pot | 2 +- .../models/class-construct-wp-utils.php | 13 +++++++------ 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 1796797..a427579 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-16 16:24+0000\n" +"POT-Creation-Date: 2023-10-16 16:27+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -109,23 +109,23 @@ msgstr "" msgid "%1$sAn Unexpected HTTP Error occurred during the API request.%2$s %1$s%3$sTry again%4$s%2$s" msgstr "" -#: models/class-construct-wp-utils.php:180 +#: models/class-construct-wp-utils.php:181 msgid "Page navigation" msgstr "" -#: models/class-construct-wp-utils.php:199 +#: models/class-construct-wp-utils.php:200 msgid "First" msgstr "" -#: models/class-construct-wp-utils.php:203 +#: models/class-construct-wp-utils.php:204 msgid "Last" msgstr "" -#: models/class-construct-wp-utils.php:219 +#: models/class-construct-wp-utils.php:220 msgid "Previous" msgstr "" -#: models/class-construct-wp-utils.php:223 +#: models/class-construct-wp-utils.php:224 msgid "Next" msgstr "" diff --git a/plugins/construct-wp/languages/js/construct-wp.pot b/plugins/construct-wp/languages/js/construct-wp.pot index 2bfbd6c..87d738f 100644 --- a/plugins/construct-wp/languages/js/construct-wp.pot +++ b/plugins/construct-wp/languages/js/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-16 16:24+0000\n" +"POT-Creation-Date: 2023-10-16 16:27+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" diff --git a/plugins/construct-wp/models/class-construct-wp-utils.php b/plugins/construct-wp/models/class-construct-wp-utils.php index 39d1ad2..ad157c9 100644 --- a/plugins/construct-wp/models/class-construct-wp-utils.php +++ b/plugins/construct-wp/models/class-construct-wp-utils.php @@ -164,13 +164,14 @@ public static function html_atts( $atts = array() ) { * * @since 1.0.0 * @access public - * @param array $link_args Arguments to send to `paginate_links` - * @param array $args Arguments for how to output the pagination - * @param boolean $display Whether to display the pagination - * @return string The pagination HTML + * @param array $link_args Arguments to send to `paginate_links` + * @param array $args Arguments for how to output the pagination + * @param WP_Query|null $args The query to use for pagination + * @param boolean $display Whether to display the pagination + * @return string The pagination HTML */ - public static function pagination( $link_args = array(), $args = array(), $wp_query = false, $display = true ) { - if ( !$wp_query ) { + public static function pagination( $link_args = array(), $args = array(), $wp_query = null, $display = true ) { + if ( ! $wp_query ) { global $wp_query; } From 37aba7e9d5a71f431d2609948711ecd150f4b3aa Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Wed, 18 Oct 2023 15:21:37 +0100 Subject: [PATCH 22/27] Fixed args comment --- plugins/construct-wp/models/class-construct-wp-utils.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/construct-wp/models/class-construct-wp-utils.php b/plugins/construct-wp/models/class-construct-wp-utils.php index ad157c9..3b382d0 100644 --- a/plugins/construct-wp/models/class-construct-wp-utils.php +++ b/plugins/construct-wp/models/class-construct-wp-utils.php @@ -166,7 +166,7 @@ public static function html_atts( $atts = array() ) { * @access public * @param array $link_args Arguments to send to `paginate_links` * @param array $args Arguments for how to output the pagination - * @param WP_Query|null $args The query to use for pagination + * @param WP_Query|null $wp_query The query to use for pagination * @param boolean $display Whether to display the pagination * @return string The pagination HTML */ From cc0777c188e7148f9039d4f52a9ab73325329fbd Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Wed, 18 Oct 2023 15:24:02 +0100 Subject: [PATCH 23/27] Fixed active link in navwalker --- plugins/construct-wp/models/class-construct-wp-navwalker.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/construct-wp/models/class-construct-wp-navwalker.php b/plugins/construct-wp/models/class-construct-wp-navwalker.php index ff2bd62..3fa47f2 100644 --- a/plugins/construct-wp/models/class-construct-wp-navwalker.php +++ b/plugins/construct-wp/models/class-construct-wp-navwalker.php @@ -240,6 +240,8 @@ public function start_el( &$output, $data_object, $depth = 0, $args = null, $cur } $atts['aria-current'] = $menu_item->current ? 'page' : ''; + + $atts['class'] .= $menu_item->current ? ' active' : ''; } else if ( $menu_item->link_type === 'header' ) { $link_tag = 'h6'; $atts['class'] = 'dropdown-header'; From 94d3080959f0780ddf30bc1d0af5508cc6738492 Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Thu, 19 Oct 2023 10:54:51 +0100 Subject: [PATCH 24/27] Added options for auto including & running theme classes --- .../assets/js/construct-wp-settings.js | 30 ++++++ .../assets/js/construct-wp-settings.js.map | 2 +- .../construct-wp/languages/construct-wp.pot | 36 +++---- .../languages/js/construct-wp.pot | 102 ++++++++++-------- .../models/class-construct-wp-loader.php | 6 ++ .../models/class-construct-wp-settings.php | 13 ++- .../models/class-construct-wp.php | 6 ++ .../pages/settings/tabs/general/index.jsx | 41 +++++++ 8 files changed, 174 insertions(+), 62 deletions(-) diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js b/plugins/construct-wp/assets/js/construct-wp-settings.js index 5d06061..aba37f6 100644 --- a/plugins/construct-wp/assets/js/construct-wp-settings.js +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js @@ -243,6 +243,8 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone baseScripts: true, templateStyles: true, templateScripts: true, + autoIncludeThemeClasses: true, + autoRunThemeClasses: true, footerColumnCount: 3 }; } @@ -260,6 +262,8 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone baseScripts: !!response.cwp_base_scripts, templateStyles: !!response.cwp_template_styles, templateScripts: !!response.cwp_template_scripts, + autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes, + autoRunThemeClasses: !!response.cwp_auto_run_theme_classes, footerColumnCount: response.cwp_footer_column_count }); }); @@ -348,6 +352,28 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }); }, disabled: this.state.isAPISaving + }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: __('Auto-include theme classes', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - the models directory */ + __('Automatically includes classes within the theme\'s %s directory', 'construct-wp'), '/models')), + checked: this.state.autoIncludeThemeClasses, + onChange: () => { + this.setState({ + autoIncludeThemeClasses: !this.state.autoIncludeThemeClasses + }); + }, + disabled: this.state.isAPISaving + }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: __('Auto-run theme classes', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - the models directory */ + __('Automatically runs classes within the theme\'s %1$s directory if they have a public %2$s method', 'construct-wp'), '/models', 'init')), + checked: this.state.autoRunThemeClasses, + onChange: () => { + this.setState({ + autoRunThemeClasses: !this.state.autoRunThemeClasses + }); + }, + disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TextControl, { label: __('Footer columns', 'construct-wp'), help: __('The number of footer widget areas to create', 'construct-wp'), @@ -377,6 +403,8 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone cwp_base_scripts: this.state.baseScripts, cwp_template_styles: this.state.templateStyles, cwp_template_scripts: this.state.templateScripts, + cwp_auto_include_theme_classes: this.state.autoIncludeThemeClasses, + cwp_auto_run_theme_classes: this.state.autoRunThemeClasses, cwp_footer_column_count: this.state.footerColumnCount /* eslint-enable camelcase */ }); @@ -391,6 +419,8 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone baseScripts: !!response.cwp_base_scripts, templateStyles: !!response.cwp_template_styles, templateScripts: !!response.cwp_template_scripts, + autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes, + autoRunThemeClasses: !!response.cwp_auto_run_theme_classes, footerColumnCount: response.cwp_footer_column_count }); (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice(__('Settings saved!', 'construct-wp'), { diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js.map b/plugins/construct-wp/assets/js/construct-wp-settings.js.map index 9a66eac..903563e 100644 --- a/plugins/construct-wp/assets/js/construct-wp-settings.js.map +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js.map @@ -1 +1 @@ -{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n TextControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n controllers: true,\n baseStyles: true,\n baseScripts: true,\n templateStyles: true,\n templateScripts: true,\n footerColumnCount: 3,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n controllers: !this.state.controllers,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/theme-name.css'\n ) )}\n checked={this.state.baseStyles}\n onChange={() => {\n this.setState( {\n baseStyles: !this.state.baseStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/theme-name.js'\n ) )}\n checked={this.state.baseScripts}\n onChange={() => {\n this.setState( {\n baseScripts: !this.state.baseScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/templates/template-name.css'\n ) )}\n checked={this.state.templateStyles}\n onChange={() => {\n this.setState( {\n templateStyles: !this.state.templateStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/templates/template-name.js'\n ) )}\n checked={this.state.templateScripts}\n onChange={() => {\n this.setState( {\n templateScripts: !this.state.templateScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n footerColumnCount: value,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n cwp_controllers: this.state.controllers,\n cwp_base_styles: this.state.baseStyles,\n cwp_base_scripts: this.state.baseScripts,\n cwp_template_styles: this.state.templateStyles,\n cwp_template_scripts: this.state.templateScripts,\n cwp_footer_column_count: this.state.footerColumnCount,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n

Remove bloat

\n\n
\n\n
\n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n\n
\n
{__( 'Dashboard meta boxes', 'construct-wp' )}
\n\n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","alias__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","TextControl","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","baseStyles","baseScripts","templateStyles","templateScripts","footerColumnCount","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","cwp_base_styles","cwp_base_scripts","cwp_template_styles","cwp_template_scripts","cwp_footer_column_count","label","help","checked","onChange","disabled","value","variant","isBusy","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","newState","prototype","hasOwnProperty","call","checkbox","area","item","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n TextControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n controllers: true,\n baseStyles: true,\n baseScripts: true,\n templateStyles: true,\n templateScripts: true,\n autoIncludeThemeClasses: true,\n autoRunThemeClasses: true,\n footerColumnCount: 3,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes,\n autoRunThemeClasses: !!response.cwp_auto_run_theme_classes,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n controllers: !this.state.controllers,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/theme-name.css'\n ) )}\n checked={this.state.baseStyles}\n onChange={() => {\n this.setState( {\n baseStyles: !this.state.baseStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/theme-name.js'\n ) )}\n checked={this.state.baseScripts}\n onChange={() => {\n this.setState( {\n baseScripts: !this.state.baseScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/templates/template-name.css'\n ) )}\n checked={this.state.templateStyles}\n onChange={() => {\n this.setState( {\n templateStyles: !this.state.templateStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/templates/template-name.js'\n ) )}\n checked={this.state.templateScripts}\n onChange={() => {\n this.setState( {\n templateScripts: !this.state.templateScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /models'\n ) )}\n checked={this.state.autoIncludeThemeClasses}\n onChange={() => {\n this.setState( {\n autoIncludeThemeClasses: !this.state.autoIncludeThemeClasses,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /models',\n 'init'\n ) )}\n checked={this.state.autoRunThemeClasses}\n onChange={() => {\n this.setState( {\n autoRunThemeClasses: !this.state.autoRunThemeClasses,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n footerColumnCount: value,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n cwp_controllers: this.state.controllers,\n cwp_base_styles: this.state.baseStyles,\n cwp_base_scripts: this.state.baseScripts,\n cwp_template_styles: this.state.templateStyles,\n cwp_template_scripts: this.state.templateScripts,\n cwp_auto_include_theme_classes: this.state.autoIncludeThemeClasses,\n cwp_auto_run_theme_classes: this.state.autoRunThemeClasses,\n cwp_footer_column_count: this.state.footerColumnCount,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes,\n autoRunThemeClasses: !!response.cwp_auto_run_theme_classes,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n

Remove bloat

\n\n
\n\n
\n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n\n
\n
{__( 'Dashboard meta boxes', 'construct-wp' )}
\n\n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","alias__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","TextControl","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","baseStyles","baseScripts","templateStyles","templateScripts","autoIncludeThemeClasses","autoRunThemeClasses","footerColumnCount","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","cwp_base_styles","cwp_base_scripts","cwp_template_styles","cwp_template_scripts","cwp_auto_include_theme_classes","cwp_auto_run_theme_classes","cwp_footer_column_count","label","help","checked","onChange","disabled","value","variant","isBusy","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","newState","prototype","hasOwnProperty","call","checkbox","area","item","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index a427579..62e9548 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-16 16:27+0000\n" +"POT-Creation-Date: 2023-10-19 09:53+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -76,31 +76,31 @@ msgstr "" msgid "Text" msgstr "" -#: models/class-construct-wp-settings.php:196 +#: models/class-construct-wp-settings.php:207 msgid "ConstructWP Settings" msgstr "" -#: models/class-construct-wp-settings.php:197 +#: models/class-construct-wp-settings.php:208 msgid "ConstructWP" msgstr "" -#: models/class-construct-wp-settings.php:208 +#: models/class-construct-wp-settings.php:219 msgid "ConstructWP Settings - General" msgstr "" -#: models/class-construct-wp-settings.php:209 +#: models/class-construct-wp-settings.php:220 msgid "General" msgstr "" -#: models/class-construct-wp-settings.php:217 +#: models/class-construct-wp-settings.php:228 msgid "ConstructWP Settings - Optimize" msgstr "" -#: models/class-construct-wp-settings.php:218 +#: models/class-construct-wp-settings.php:229 msgid "Optimize" msgstr "" -#: models/class-construct-wp-settings.php:280 +#: models/class-construct-wp-settings.php:291 msgid "Settings" msgstr "" @@ -143,42 +143,42 @@ msgstr "" msgid "Add widgets here to appear in your footer column %d" msgstr "" -#: models/class-construct-wp.php:474 +#: models/class-construct-wp.php:480 msgid "Logo" msgstr "" -#: models/class-construct-wp.php:475 +#: models/class-construct-wp.php:481 msgid "This should be your regular, colored logo." msgstr "" -#: models/class-construct-wp.php:483, models/class-construct-wp.php:488, models/class-construct-wp.php:517, models/class-construct-wp.php:522 +#: models/class-construct-wp.php:489, models/class-construct-wp.php:494, models/class-construct-wp.php:523, models/class-construct-wp.php:528 msgid "Select logo" msgstr "" -#: models/class-construct-wp.php:484, models/class-construct-wp.php:518 +#: models/class-construct-wp.php:490, models/class-construct-wp.php:524 msgid "Change logo" msgstr "" -#: models/class-construct-wp.php:485, models/class-construct-wp.php:519 +#: models/class-construct-wp.php:491, models/class-construct-wp.php:525 msgid "Remove" msgstr "" -#: models/class-construct-wp.php:486, models/class-construct-wp.php:520 +#: models/class-construct-wp.php:492, models/class-construct-wp.php:526 msgid "Default" msgstr "" -#: models/class-construct-wp.php:487, models/class-construct-wp.php:521 +#: models/class-construct-wp.php:493, models/class-construct-wp.php:527 msgid "No logo selected" msgstr "" -#: models/class-construct-wp.php:489, models/class-construct-wp.php:523 +#: models/class-construct-wp.php:495, models/class-construct-wp.php:529 msgid "Choose logo" msgstr "" -#: models/class-construct-wp.php:508 +#: models/class-construct-wp.php:514 msgid "White Logo" msgstr "" -#: models/class-construct-wp.php:509 +#: models/class-construct-wp.php:515 msgid "This should the white version of your logo for placement on colored backgrounds." msgstr "" diff --git a/plugins/construct-wp/languages/js/construct-wp.pot b/plugins/construct-wp/languages/js/construct-wp.pot index 87d738f..f1299b7 100644 --- a/plugins/construct-wp/languages/js/construct-wp.pot +++ b/plugins/construct-wp/languages/js/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-16 16:27+0000\n" +"POT-Creation-Date: 2023-10-19 09:53+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -32,172 +32,190 @@ msgstr "" msgid "ConstructWP" msgstr "" -#: assets/js/construct-wp-settings.js:271, assets/js/construct-wp-settings.js:275, assets/js/construct-wp-settings.js:417 +#: assets/js/construct-wp-settings.js:275, assets/js/construct-wp-settings.js:279, assets/js/construct-wp-settings.js:447 msgid "General" msgstr "" -#: assets/js/construct-wp-settings.js:276 +#: assets/js/construct-wp-settings.js:280 msgid "Remove admin bar" msgstr "" #. translators: %s - The capability in a code tag -#: assets/js/construct-wp-settings.js:278 +#: assets/js/construct-wp-settings.js:282 msgid "Removes the admin bar from the frontend if the user doesn't have the %s capability" msgstr "" -#: assets/js/construct-wp-settings.js:287 +#: assets/js/construct-wp-settings.js:291 msgid "Restrict admin access" msgstr "" #. translators: %s - The capability in a code tag -#: assets/js/construct-wp-settings.js:289 +#: assets/js/construct-wp-settings.js:293 msgid "Redirects users to the frontend if they try to access the admin area without the %s capability" msgstr "" -#: assets/js/construct-wp-settings.js:298 +#: assets/js/construct-wp-settings.js:302 msgid "Enable controllers" msgstr "" -#: assets/js/construct-wp-settings.js:299 +#: assets/js/construct-wp-settings.js:303 msgid "Enables controllers on the frontend based on the current template file" msgstr "" -#: assets/js/construct-wp-settings.js:308 +#: assets/js/construct-wp-settings.js:312 msgid "Auto-enqueue theme styles" msgstr "" #. translators: %s - An example theme style path -#: assets/js/construct-wp-settings.js:310 +#: assets/js/construct-wp-settings.js:314 msgid "Automatically enqueues the theme's styles based on the parent and child theme names. e.g. %s" msgstr "" -#: assets/js/construct-wp-settings.js:319 +#: assets/js/construct-wp-settings.js:323 msgid "Auto-enqueue theme scripts" msgstr "" #. translators: %s - An example theme script path -#: assets/js/construct-wp-settings.js:321 +#: assets/js/construct-wp-settings.js:325 msgid "Automatically enqueues the theme's scripts based on the parent and child theme names. e.g. %s" msgstr "" -#: assets/js/construct-wp-settings.js:330 +#: assets/js/construct-wp-settings.js:334 msgid "Auto-enqueue template styles" msgstr "" #. translators: %s - An example template style path -#: assets/js/construct-wp-settings.js:332 +#: assets/js/construct-wp-settings.js:336 msgid "Automatically enqueues a template's styles based on the template name. e.g. %s" msgstr "" -#: assets/js/construct-wp-settings.js:341 +#: assets/js/construct-wp-settings.js:345 msgid "Auto-enqueue template scripts" msgstr "" #. translators: %s - An example template script path -#: assets/js/construct-wp-settings.js:343 +#: assets/js/construct-wp-settings.js:347 msgid "Automatically enqueues a template's scripts based on the template name. e.g. %s" msgstr "" -#: assets/js/construct-wp-settings.js:352 +#: assets/js/construct-wp-settings.js:356 +msgid "Auto-include theme classes" +msgstr "" + +#. translators: %s - the models directory +#: assets/js/construct-wp-settings.js:358 +msgid "Automatically includes classes within the theme's %s directory" +msgstr "" + +#: assets/js/construct-wp-settings.js:367 +msgid "Auto-run theme classes" +msgstr "" + +#. translators: %s - the models directory +#: assets/js/construct-wp-settings.js:369 +msgid "Automatically runs classes within the theme's %1$s directory if they have a public %2$s method" +msgstr "" + +#: assets/js/construct-wp-settings.js:378 msgid "Footer columns" msgstr "" -#: assets/js/construct-wp-settings.js:353 +#: assets/js/construct-wp-settings.js:379 msgid "The number of footer widget areas to create" msgstr "" -#: assets/js/construct-wp-settings.js:403, assets/js/construct-wp-settings.js:578 +#: assets/js/construct-wp-settings.js:433, assets/js/construct-wp-settings.js:608 msgid "Unable to save settings" msgstr "" -#: assets/js/construct-wp-settings.js:396, assets/js/construct-wp-settings.js:571 +#: assets/js/construct-wp-settings.js:426, assets/js/construct-wp-settings.js:601 msgid "Settings saved!" msgstr "" -#: assets/js/construct-wp-settings.js:411, assets/js/construct-wp-settings.js:586 +#: assets/js/construct-wp-settings.js:441, assets/js/construct-wp-settings.js:616 msgid "Save" msgstr "" -#: assets/js/construct-wp-settings.js:492 +#: assets/js/construct-wp-settings.js:522 msgid "Select all" msgstr "" -#: assets/js/construct-wp-settings.js:525, assets/js/construct-wp-settings.js:529, assets/js/construct-wp-settings.js:530, assets/js/construct-wp-settings.js:592 +#: assets/js/construct-wp-settings.js:555, assets/js/construct-wp-settings.js:559, assets/js/construct-wp-settings.js:560, assets/js/construct-wp-settings.js:622 msgid "Optimize" msgstr "" -#: assets/js/construct-wp-settings.js:531 +#: assets/js/construct-wp-settings.js:561 msgid "Whether to optimize the site to remove bloat" msgstr "" -#: assets/js/construct-wp-settings.js:541 +#: assets/js/construct-wp-settings.js:571 msgid "WordPress" msgstr "" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:573 msgid "Feeds" msgstr "" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:573 msgid "Really Simple Directory link" msgstr "" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:573 msgid "Relational attributes" msgstr "" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:573 msgid "Relational links" msgstr "" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:573 msgid "Version numbers" msgstr "" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:573 msgid "JSON API links" msgstr "" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:573 msgid "Emoji" msgstr "" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:573 msgid "XML-RPC" msgstr "" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:573 msgid "jQuery migrate" msgstr "" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:573 msgid "Self pingback" msgstr "" -#: assets/js/construct-wp-settings.js:545 +#: assets/js/construct-wp-settings.js:575 msgid "Dashboard meta boxes" msgstr "" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:577 msgid "Welcome panel" msgstr "" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:577 msgid "Site health" msgstr "" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:577 msgid "At a glance" msgstr "" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:577 msgid "Activity" msgstr "" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:577 msgid "Quick draft" msgstr "" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:577 msgid "Events and news" msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp-loader.php b/plugins/construct-wp/models/class-construct-wp-loader.php index e399a6f..b0bc351 100644 --- a/plugins/construct-wp/models/class-construct-wp-loader.php +++ b/plugins/construct-wp/models/class-construct-wp-loader.php @@ -127,6 +127,12 @@ public static function load_theme_models() { return; } + $autoload = boolval( get_option( 'cwp_auto_include_theme_classes' ) ); + + if ( ! $autoload ) { + return; + } + global $wp_filesystem; $stylesheet_model_path = trailingslashit( get_stylesheet_directory() ) . 'models'; $stylesheet_models = self::get_models( $stylesheet_model_path ); diff --git a/plugins/construct-wp/models/class-construct-wp-settings.php b/plugins/construct-wp/models/class-construct-wp-settings.php index 53b6fc4..6547392 100644 --- a/plugins/construct-wp/models/class-construct-wp-settings.php +++ b/plugins/construct-wp/models/class-construct-wp-settings.php @@ -77,13 +77,24 @@ private static function register_settings() { 'default' => true, ) ); + register_setting( 'cwp_settings', 'cwp_auto_include_theme_classes', array( + 'type' => 'boolean', + 'show_in_rest' => true, + 'default' => true, + ) ); + + register_setting( 'cwp_settings', 'cwp_auto_run_theme_classes', array( + 'type' => 'boolean', + 'show_in_rest' => true, + 'default' => true, + ) ); + register_setting( 'cwp_settings', 'cwp_footer_column_count', array( 'type' => 'number', 'show_in_rest' => true, 'default' => 3, ) ); - // TODO autorun theme classes. // TODO theme support. // TODO autoload theme textdomain. diff --git a/plugins/construct-wp/models/class-construct-wp.php b/plugins/construct-wp/models/class-construct-wp.php index ede7f4a..715eb82 100644 --- a/plugins/construct-wp/models/class-construct-wp.php +++ b/plugins/construct-wp/models/class-construct-wp.php @@ -387,6 +387,12 @@ private static function run_plugin_classes() { * @return void */ private static function run_theme_classes() { + $autorun = boolval( get_option( 'cwp_auto_run_theme_classes' ) ); + + if ( ! $autorun ) { + return; + } + foreach ( CWP_Loader::$theme_classes as $class ) { $run_init = apply_filters( 'cwp_run_theme_class_init', true, $class ); diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx index bfa1245..17d5d36 100644 --- a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx +++ b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx @@ -32,6 +32,8 @@ class GeneralTab extends Component { baseScripts: true, templateStyles: true, templateScripts: true, + autoIncludeThemeClasses: true, + autoRunThemeClasses: true, footerColumnCount: 3, } } @@ -51,6 +53,8 @@ class GeneralTab extends Component { baseScripts: !!response.cwp_base_scripts, templateStyles: !!response.cwp_template_styles, templateScripts: !!response.cwp_template_scripts, + autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes, + autoRunThemeClasses: !!response.cwp_auto_run_theme_classes, footerColumnCount: response.cwp_footer_column_count, } ) } ) @@ -179,6 +183,39 @@ class GeneralTab extends Component { disabled={this.state.isAPISaving} /> + /models' + ) )} + checked={this.state.autoIncludeThemeClasses} + onChange={() => { + this.setState( { + autoIncludeThemeClasses: !this.state.autoIncludeThemeClasses, + } ) + }} + disabled={this.state.isAPISaving} + /> + + /models', + 'init' + ) )} + checked={this.state.autoRunThemeClasses} + onChange={() => { + this.setState( { + autoRunThemeClasses: !this.state.autoRunThemeClasses, + } ) + }} + disabled={this.state.isAPISaving} + /> + Date: Thu, 19 Oct 2023 16:29:32 +0100 Subject: [PATCH 25/27] Added auto-load theme textdomain --- .../assets/js/construct-wp-settings.js | 17 ++- .../assets/js/construct-wp-settings.js.map | 2 +- .../construct-wp/languages/construct-wp.pot | 40 +++---- .../languages/js/construct-wp.pot | 103 ++++++++++-------- .../models/class-construct-wp-settings.php | 7 +- .../models/class-construct-wp.php | 13 ++- .../pages/settings/tabs/general/index.jsx | 22 +++- 7 files changed, 131 insertions(+), 73 deletions(-) diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js b/plugins/construct-wp/assets/js/construct-wp-settings.js index aba37f6..f6a1326 100644 --- a/plugins/construct-wp/assets/js/construct-wp-settings.js +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js @@ -245,6 +245,7 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone templateScripts: true, autoIncludeThemeClasses: true, autoRunThemeClasses: true, + themeTextdomain: true, footerColumnCount: 3 }; } @@ -264,6 +265,7 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone templateScripts: !!response.cwp_template_scripts, autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes, autoRunThemeClasses: !!response.cwp_auto_run_theme_classes, + themeTextdomain: !!response.cwp_theme_textdomain, footerColumnCount: response.cwp_footer_column_count }); }); @@ -365,7 +367,7 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { label: __('Auto-run theme classes', 'construct-wp'), - help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - the models directory */ + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %1$s - the models directory. %2$s - The init method name */ __('Automatically runs classes within the theme\'s %1$s directory if they have a public %2$s method', 'construct-wp'), '/models', 'init')), checked: this.state.autoRunThemeClasses, onChange: () => { @@ -374,6 +376,17 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone }); }, disabled: this.state.isAPISaving + }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: __('Auto-load theme textdomain', 'construct-wp'), + help: htmlToElem((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.sprintf)( /* translators: %s - The languages directory */ + __('Automatically loads a theme\'s textdomain based on the theme name. Language files must be located in %s of the theme\'s directory', 'construct-wp'), '/languages')), + checked: this.state.themeTextdomain, + onChange: () => { + this.setState({ + themeTextdomain: !this.state.themeTextdomain + }); + }, + disabled: this.state.isAPISaving }), wp.element.createElement(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TextControl, { label: __('Footer columns', 'construct-wp'), help: __('The number of footer widget areas to create', 'construct-wp'), @@ -405,6 +418,7 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone cwp_template_scripts: this.state.templateScripts, cwp_auto_include_theme_classes: this.state.autoIncludeThemeClasses, cwp_auto_run_theme_classes: this.state.autoRunThemeClasses, + cwp_theme_textdomain: this.state.themeTextdomain, cwp_footer_column_count: this.state.footerColumnCount /* eslint-enable camelcase */ }); @@ -421,6 +435,7 @@ class GeneralTab extends _wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Compone templateScripts: !!response.cwp_template_scripts, autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes, autoRunThemeClasses: !!response.cwp_auto_run_theme_classes, + themeTextdomain: !!response.cwp_theme_textdomain, footerColumnCount: response.cwp_footer_column_count }); (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.dispatch)('core/notices').createSuccessNotice(__('Settings saved!', 'construct-wp'), { diff --git a/plugins/construct-wp/assets/js/construct-wp-settings.js.map b/plugins/construct-wp/assets/js/construct-wp-settings.js.map index 903563e..6eac0d2 100644 --- a/plugins/construct-wp/assets/js/construct-wp-settings.js.map +++ b/plugins/construct-wp/assets/js/construct-wp-settings.js.map @@ -1 +1 @@ -{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n TextControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n controllers: true,\n baseStyles: true,\n baseScripts: true,\n templateStyles: true,\n templateScripts: true,\n autoIncludeThemeClasses: true,\n autoRunThemeClasses: true,\n footerColumnCount: 3,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes,\n autoRunThemeClasses: !!response.cwp_auto_run_theme_classes,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n controllers: !this.state.controllers,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/theme-name.css'\n ) )}\n checked={this.state.baseStyles}\n onChange={() => {\n this.setState( {\n baseStyles: !this.state.baseStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/theme-name.js'\n ) )}\n checked={this.state.baseScripts}\n onChange={() => {\n this.setState( {\n baseScripts: !this.state.baseScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/templates/template-name.css'\n ) )}\n checked={this.state.templateStyles}\n onChange={() => {\n this.setState( {\n templateStyles: !this.state.templateStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/templates/template-name.js'\n ) )}\n checked={this.state.templateScripts}\n onChange={() => {\n this.setState( {\n templateScripts: !this.state.templateScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /models'\n ) )}\n checked={this.state.autoIncludeThemeClasses}\n onChange={() => {\n this.setState( {\n autoIncludeThemeClasses: !this.state.autoIncludeThemeClasses,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /models',\n 'init'\n ) )}\n checked={this.state.autoRunThemeClasses}\n onChange={() => {\n this.setState( {\n autoRunThemeClasses: !this.state.autoRunThemeClasses,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n footerColumnCount: value,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n cwp_controllers: this.state.controllers,\n cwp_base_styles: this.state.baseStyles,\n cwp_base_scripts: this.state.baseScripts,\n cwp_template_styles: this.state.templateStyles,\n cwp_template_scripts: this.state.templateScripts,\n cwp_auto_include_theme_classes: this.state.autoIncludeThemeClasses,\n cwp_auto_run_theme_classes: this.state.autoRunThemeClasses,\n cwp_footer_column_count: this.state.footerColumnCount,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes,\n autoRunThemeClasses: !!response.cwp_auto_run_theme_classes,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n

Remove bloat

\n\n
\n\n
\n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n\n
\n
{__( 'Dashboard meta boxes', 'construct-wp' )}
\n\n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","alias__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","TextControl","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","baseStyles","baseScripts","templateStyles","templateScripts","autoIncludeThemeClasses","autoRunThemeClasses","footerColumnCount","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","cwp_base_styles","cwp_base_scripts","cwp_template_styles","cwp_template_scripts","cwp_auto_include_theme_classes","cwp_auto_run_theme_classes","cwp_footer_column_count","label","help","checked","onChange","disabled","value","variant","isBusy","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","newState","prototype","hasOwnProperty","call","checkbox","area","item","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"construct-wp-settings.js","mappings":"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","sources":["webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/cwp-logo/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/components/notices/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/index.js","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/pages/settings/tabs/optimize/index.jsx","webpack://construct-wp/external var \"wp.components\"","webpack://construct-wp/external var \"wp.data\"","webpack://construct-wp/external var \"wp.element\"","webpack://construct-wp/external var \"wp.hooks\"","webpack://construct-wp/external var \"wp.i18n\"","webpack://construct-wp/external var \"wp.notices\"","webpack://construct-wp/webpack/bootstrap","webpack://construct-wp/webpack/runtime/compat get default export","webpack://construct-wp/webpack/runtime/define property getters","webpack://construct-wp/webpack/runtime/hasOwnProperty shorthand","webpack://construct-wp/webpack/runtime/make namespace object","webpack://construct-wp/./plugins/construct-wp/src/gutenberg/construct-wp-settings.js"],"sourcesContent":["const CWPLogo = ( props ) => (\n \n \n \n \n \n \n)\n\nexport default CWPLogo\n","export { default as CWPLogo } from './cwp-logo'\nexport { default as Notices } from './notices'\n","import {\n SnackbarList,\n} from '@wordpress/components'\nimport {\n useDispatch,\n useSelect,\n} from '@wordpress/data'\nimport {\n store as noticesStore,\n} from '@wordpress/notices'\n\nconst Notices = () => {\n const notices = useSelect(\n ( select ) =>\n select( noticesStore )\n .getNotices()\n .filter( ( notice ) => notice.type === 'snackbar' ),\n []\n )\n\n const { removeNotice } = useDispatch( noticesStore )\n\n return (\n \n )\n}\n\nexport default Notices\n","export { default as SettingsPage } from './settings'\n\nimport {\n addFilter,\n} from '@wordpress/hooks'\nimport {\n generalTab,\n optimizeTab,\n} from './settings/tabs'\n\naddFilter( 'cwpTabs', 'cwpCore', () => {\n return [\n generalTab,\n optimizeTab,\n ]\n}, 1 )\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n TabPanel,\n VisuallyHidden,\n} from '@wordpress/components'\nimport {\n applyFilters,\n} from '@wordpress/hooks'\nimport {\n __,\n} from '@wordpress/i18n'\nimport {\n CWPLogo,\n Notices,\n} from '../../components'\n\nclass SettingsPage extends Component {\n tabs = []\n panels = {}\n siteUrl = ''\n currentTab = ''\n\n constructor() {\n super()\n\n this.siteUrl = window.location.origin + window.location.pathname + '?page=construct-wp'\n\n /**\n * Must return as follows:\n * [\n * {\n * tab: {\n * name: 'tab1',\n * title: 'Tab 1',\n * },\n * panel: TabPanel,\n * },\n * ]\n */\n let tabDetails = applyFilters( 'cwpTabs', [] )\n this.tabs = tabDetails.map( ( tab ) => tab.tab )\n\n tabDetails.forEach( ( tab ) => {\n this.panels[tab.tab.name] = tab.panel\n } )\n\n const urlParams = new URLSearchParams( window.location.search )\n const requested = urlParams.get( 'page' ).replace( 'construct-wp', '' ).replace( /^-/, '' )\n\n this.currentTab = typeof requested === 'string' ? requested : ''\n }\n\n render() {\n // return <>\n return (\n <>\n
\n
\n
\n \n \n { __( 'ConstructWP', 'construct-wp' ) }\n \n v{cwpSettingsData.version}\n
\n\n {\n if ( tabName !== this.currentTab ) {\n window.location.href = `${this.siteUrl}-${tabName}`\n }\n }}\n >\n { () => {} }\n \n
\n
\n\n
\n
\n {!this.currentTab &&
}\n {Object.entries( this.panels ).map( ( [panelName, Panel], i ) => {\n if ( this.currentTab === panelName ) {\n return (\n \n \n
\n )\n }\n\n return <>\n } )}\n
\n \n\n
\n \n
\n \n )\n }\n}\n\nexport default SettingsPage\n","import {\n Component,\n RawHTML,\n} from '@wordpress/element'\nimport {\n Button,\n TextControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n sprintf,\n} from '@wordpress/i18n'\n\n// eslint-disable-next-line new-cap\nconst htmlToElem = ( html ) => RawHTML( { children: html } )\n\nclass GeneralTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n removeAdminBar: true,\n restrictAdminAccess: true,\n controllers: true,\n baseStyles: true,\n baseScripts: true,\n templateStyles: true,\n templateScripts: true,\n autoIncludeThemeClasses: true,\n autoRunThemeClasses: true,\n themeTextdomain: true,\n footerColumnCount: 3,\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes,\n autoRunThemeClasses: !!response.cwp_auto_run_theme_classes,\n themeTextdomain: !!response.cwp_theme_textdomain,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n } )\n }\n } )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n

{__( 'General', 'construct-wp' )}

\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.removeAdminBar}\n onChange={() => {\n this.setState( {\n removeAdminBar: !this.state.removeAdminBar,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n cwp_view_admin_dashboard'\n ) )}\n checked={this.state.restrictAdminAccess}\n onChange={() => {\n this.setState( {\n restrictAdminAccess: !this.state.restrictAdminAccess,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n controllers: !this.state.controllers,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/theme-name.css'\n ) )}\n checked={this.state.baseStyles}\n onChange={() => {\n this.setState( {\n baseStyles: !this.state.baseStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/theme-name.js'\n ) )}\n checked={this.state.baseScripts}\n onChange={() => {\n this.setState( {\n baseScripts: !this.state.baseScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/css/templates/template-name.css'\n ) )}\n checked={this.state.templateStyles}\n onChange={() => {\n this.setState( {\n templateStyles: !this.state.templateStyles,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /assets/js/templates/template-name.js'\n ) )}\n checked={this.state.templateScripts}\n onChange={() => {\n this.setState( {\n templateScripts: !this.state.templateScripts,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /models'\n ) )}\n checked={this.state.autoIncludeThemeClasses}\n onChange={() => {\n this.setState( {\n autoIncludeThemeClasses: !this.state.autoIncludeThemeClasses,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /models',\n 'init'\n ) )}\n checked={this.state.autoRunThemeClasses}\n onChange={() => {\n this.setState( {\n autoRunThemeClasses: !this.state.autoRunThemeClasses,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n /languages'\n ) )}\n checked={this.state.themeTextdomain}\n onChange={() => {\n this.setState( {\n themeTextdomain: !this.state.themeTextdomain,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n footerColumnCount: value,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_remove_admin_bar: this.state.removeAdminBar,\n cwp_restrict_admin_access: this.state.restrictAdminAccess,\n cwp_controllers: this.state.controllers,\n cwp_base_styles: this.state.baseStyles,\n cwp_base_scripts: this.state.baseScripts,\n cwp_template_styles: this.state.templateStyles,\n cwp_template_scripts: this.state.templateScripts,\n cwp_auto_include_theme_classes: this.state.autoIncludeThemeClasses,\n cwp_auto_run_theme_classes: this.state.autoRunThemeClasses,\n cwp_theme_textdomain: this.state.themeTextdomain,\n cwp_footer_column_count: this.state.footerColumnCount,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n removeAdminBar: !!response.cwp_remove_admin_bar,\n restrictAdminAccess: !!response.cwp_restrict_admin_access,\n controllers: !!response.cwp_controllers,\n baseStyles: !!response.cwp_base_styles,\n baseScripts: !!response.cwp_base_scripts,\n templateStyles: !!response.cwp_template_styles,\n templateScripts: !!response.cwp_template_scripts,\n autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes,\n autoRunThemeClasses: !!response.cwp_auto_run_theme_classes,\n themeTextdomain: !!response.cwp_theme_textdomain,\n footerColumnCount: response.cwp_footer_column_count,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'general',\n title: __( 'General', 'construct-wp' ),\n },\n panel: GeneralTab,\n}\n","export { default as generalTab } from './general'\nexport { default as optimizeTab } from './optimize'\n","import {\n Component,\n} from '@wordpress/element'\nimport {\n Button,\n CheckboxControl,\n ToggleControl,\n} from '@wordpress/components'\nimport {\n dispatch,\n} from '@wordpress/data'\nimport {\n __,\n} from '@wordpress/i18n'\n\nclass OptimizeTab extends Component {\n constructor() {\n super()\n\n this.state = {\n isAPILoaded: false,\n isAPISaving: false,\n optimize: true,\n wpBloat: {},\n dashboardMeta: {},\n }\n }\n\n componentDidMount() {\n wp.api.loadPromise.then( () => {\n this.settings = new wp.api.models.Settings()\n\n if ( !this.state.isAPILoaded ) {\n this.settings.fetch().then( ( response ) => {\n this.setState( {\n isAPILoaded: true,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n } )\n }\n } )\n }\n\n selectAll( state ) {\n const isAllChecked = Object.values( this.state[state] ).every( Boolean )\n const isIndeterminate = Object.values( this.state[state] ).some( Boolean ) && !isAllChecked\n\n return (\n {\n let newState = this.state[state]\n\n for ( const key in newState ) {\n if ( Object.prototype.hasOwnProperty.call( newState, key ) ) {\n newState[key] = value\n }\n }\n\n this.setState( {\n [state]: newState,\n } )\n }}\n />\n )\n }\n\n checkbox( area, item, title ) {\n return (\n {\n this.setState( {\n [area]: {\n ...this.state[area],\n [item]: !this.state[area][item],\n },\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n )\n }\n\n render() {\n if ( !this.state.isAPILoaded ) {\n return (\n <>\n

{__( 'Optimize', 'construct-wp' )}

\n
\n \n )\n }\n\n return (\n <>\n
\n

{__( 'Optimize', 'construct-wp' )}

\n {\n this.setState( {\n optimize: !this.state.optimize,\n } )\n }}\n disabled={this.state.isAPISaving}\n />\n
\n\n {this.state.optimize && (\n <>\n

Remove bloat

\n\n
\n\n
\n
{__( 'WordPress', 'construct-wp' )}
\n\n {this.selectAll( 'wpBloat' )}\n
\n {this.checkbox( 'wpBloat', 'feeds', __( 'Feeds', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rsd_link', __( 'Really Simple Directory link', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_atts', __( 'Relational attributes', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'rel_links', __( 'Relational links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'version_number', __( 'Version numbers', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'json_api_links', __( 'JSON API links', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'emoji', __( 'Emoji', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'xmlrpc', __( 'XML-RPC', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'jquery_migrate', __( 'jQuery migrate', 'construct-wp' ) )}\n {this.checkbox( 'wpBloat', 'self_pingback', __( 'Self pingback', 'construct-wp' ) )}\n
\n
\n\n
\n
{__( 'Dashboard meta boxes', 'construct-wp' )}
\n\n {this.selectAll( 'dashboardMeta' )}\n\n
\n {this.checkbox( 'dashboardMeta', 'welcome', __( 'Welcome panel', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'site_health', __( 'Site health', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'at_a_glance', __( 'At a glance', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'activity', __( 'Activity', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'quick_draft', __( 'Quick draft', 'construct-wp' ) )}\n {this.checkbox( 'dashboardMeta', 'events_and_news', __( 'Events and news', 'construct-wp' ) )}\n
\n
\n \n )}\n\n {\n this.setState( {\n isAPISaving: true,\n } )\n\n const settings = new wp.api.models.Settings( {\n /* eslint-disable camelcase */\n cwp_optimize: this.state.optimize,\n cwp_optimize_wp_bloat: this.state.wpBloat,\n cwp_optimize_dashboard_meta: this.state.dashboardMeta,\n /* eslint-enable camelcase */\n } )\n\n settings.save()\n .then( ( response ) => {\n this.setState( {\n isAPISaving: false,\n optimize: !!response.cwp_optimize,\n wpBloat: response.cwp_optimize_wp_bloat,\n dashboardMeta: response.cwp_optimize_dashboard_meta,\n } )\n\n dispatch( 'core/notices' ).createSuccessNotice(\n __( 'Settings saved!', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n .catch( () => {\n dispatch( 'core/notices' ).createErrorNotice(\n __( 'Unable to save settings', 'construct-wp' ),\n {\n type: 'snackbar',\n speak: true,\n isDismissible: true,\n icon: '',\n }\n )\n } )\n }}\n >\n { __( 'Save', 'construct-wp' ) }\n \n \n )\n }\n}\n\nexport default {\n tab: {\n name: 'optimize',\n title: __( 'Optimize', 'construct-wp' ),\n },\n panel: OptimizeTab,\n}\n","module.exports = wp.components;","module.exports = wp.data;","module.exports = wp.element;","module.exports = wp.hooks;","module.exports = wp.i18n;","module.exports = wp.notices;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {\n render,\n} from '@wordpress/element'\n\nimport {\n SettingsPage,\n} from './pages'\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n const htmlOutput = document.getElementById( 'construct-wp-settings' )\n\n if ( htmlOutput ) {\n render(\n ,\n htmlOutput\n )\n }\n} )\n"],"names":["CWPLogo","props","wp","element","createElement","_extends","xmlns","viewBox","fill","d","cx","cy","r","default","Notices","SnackbarList","useDispatch","useSelect","store","noticesStore","notices","select","getNotices","filter","notice","type","removeNotice","className","onRemove","SettingsPage","addFilter","generalTab","optimizeTab","Component","TabPanel","VisuallyHidden","applyFilters","__","alias__","constructor","_defineProperty","siteUrl","window","location","origin","pathname","tabDetails","tabs","map","tab","forEach","panels","name","panel","urlParams","URLSearchParams","search","requested","get","replace","currentTab","render","React","Fragment","title","cwpSettingsData","version","initialTabName","onSelect","tabName","href","concat","Object","entries","_ref","i","panelName","Panel","id","key","RawHTML","Button","TextControl","ToggleControl","dispatch","sprintf","htmlToElem","html","children","GeneralTab","state","isAPILoaded","isAPISaving","removeAdminBar","restrictAdminAccess","controllers","baseStyles","baseScripts","templateStyles","templateScripts","autoIncludeThemeClasses","autoRunThemeClasses","themeTextdomain","footerColumnCount","componentDidMount","api","loadPromise","then","settings","models","Settings","fetch","response","setState","cwp_remove_admin_bar","cwp_restrict_admin_access","cwp_controllers","cwp_base_styles","cwp_base_scripts","cwp_template_styles","cwp_template_scripts","cwp_auto_include_theme_classes","cwp_auto_run_theme_classes","cwp_theme_textdomain","cwp_footer_column_count","label","help","checked","onChange","disabled","value","variant","isBusy","onClick","save","createSuccessNotice","speak","isDismissible","icon","catch","createErrorNotice","CheckboxControl","OptimizeTab","optimize","wpBloat","dashboardMeta","cwp_optimize","cwp_optimize_wp_bloat","cwp_optimize_dashboard_meta","selectAll","isAllChecked","values","every","Boolean","isIndeterminate","some","indeterminate","newState","prototype","hasOwnProperty","call","checkbox","area","item","document","addEventListener","htmlOutput","getElementById"],"sourceRoot":""} \ No newline at end of file diff --git a/plugins/construct-wp/languages/construct-wp.pot b/plugins/construct-wp/languages/construct-wp.pot index 62e9548..278a4b4 100644 --- a/plugins/construct-wp/languages/construct-wp.pot +++ b/plugins/construct-wp/languages/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-19 09:53+0000\n" +"POT-Creation-Date: 2023-10-19 15:20+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -76,31 +76,31 @@ msgstr "" msgid "Text" msgstr "" -#: models/class-construct-wp-settings.php:207 +#: models/class-construct-wp-settings.php:212 msgid "ConstructWP Settings" msgstr "" -#: models/class-construct-wp-settings.php:208 +#: models/class-construct-wp-settings.php:213 msgid "ConstructWP" msgstr "" -#: models/class-construct-wp-settings.php:219 +#: models/class-construct-wp-settings.php:224 msgid "ConstructWP Settings - General" msgstr "" -#: models/class-construct-wp-settings.php:220 +#: models/class-construct-wp-settings.php:225 msgid "General" msgstr "" -#: models/class-construct-wp-settings.php:228 +#: models/class-construct-wp-settings.php:233 msgid "ConstructWP Settings - Optimize" msgstr "" -#: models/class-construct-wp-settings.php:229 +#: models/class-construct-wp-settings.php:234 msgid "Optimize" msgstr "" -#: models/class-construct-wp-settings.php:291 +#: models/class-construct-wp-settings.php:296 msgid "Settings" msgstr "" @@ -134,51 +134,51 @@ msgid "No feed available" msgstr "" #. translators: %d Footer column number -#: models/class-construct-wp.php:307 +#: models/class-construct-wp.php:316 msgid "Footer %d" msgstr "" #. translators: %d Footer column number -#: models/class-construct-wp.php:313 +#: models/class-construct-wp.php:322 msgid "Add widgets here to appear in your footer column %d" msgstr "" -#: models/class-construct-wp.php:480 +#: models/class-construct-wp.php:489 msgid "Logo" msgstr "" -#: models/class-construct-wp.php:481 +#: models/class-construct-wp.php:490 msgid "This should be your regular, colored logo." msgstr "" -#: models/class-construct-wp.php:489, models/class-construct-wp.php:494, models/class-construct-wp.php:523, models/class-construct-wp.php:528 +#: models/class-construct-wp.php:498, models/class-construct-wp.php:503, models/class-construct-wp.php:532, models/class-construct-wp.php:537 msgid "Select logo" msgstr "" -#: models/class-construct-wp.php:490, models/class-construct-wp.php:524 +#: models/class-construct-wp.php:499, models/class-construct-wp.php:533 msgid "Change logo" msgstr "" -#: models/class-construct-wp.php:491, models/class-construct-wp.php:525 +#: models/class-construct-wp.php:500, models/class-construct-wp.php:534 msgid "Remove" msgstr "" -#: models/class-construct-wp.php:492, models/class-construct-wp.php:526 +#: models/class-construct-wp.php:501, models/class-construct-wp.php:535 msgid "Default" msgstr "" -#: models/class-construct-wp.php:493, models/class-construct-wp.php:527 +#: models/class-construct-wp.php:502, models/class-construct-wp.php:536 msgid "No logo selected" msgstr "" -#: models/class-construct-wp.php:495, models/class-construct-wp.php:529 +#: models/class-construct-wp.php:504, models/class-construct-wp.php:538 msgid "Choose logo" msgstr "" -#: models/class-construct-wp.php:514 +#: models/class-construct-wp.php:523 msgid "White Logo" msgstr "" -#: models/class-construct-wp.php:515 +#: models/class-construct-wp.php:524 msgid "This should the white version of your logo for placement on colored backgrounds." msgstr "" diff --git a/plugins/construct-wp/languages/js/construct-wp.pot b/plugins/construct-wp/languages/js/construct-wp.pot index f1299b7..0b7d57b 100644 --- a/plugins/construct-wp/languages/js/construct-wp.pot +++ b/plugins/construct-wp/languages/js/construct-wp.pot @@ -8,7 +8,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Andrew Palfrey \n" "Last-Translator: Andrew Palfrey \n" -"POT-Creation-Date: 2023-10-19 09:53+0000\n" +"POT-Creation-Date: 2023-10-19 15:20+0000\n" "X-Poedit-Basepath: ..\n" "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SearchPath-0: .\n" @@ -32,190 +32,199 @@ msgstr "" msgid "ConstructWP" msgstr "" -#: assets/js/construct-wp-settings.js:275, assets/js/construct-wp-settings.js:279, assets/js/construct-wp-settings.js:447 +#: assets/js/construct-wp-settings.js:277, assets/js/construct-wp-settings.js:281, assets/js/construct-wp-settings.js:462 msgid "General" msgstr "" -#: assets/js/construct-wp-settings.js:280 +#: assets/js/construct-wp-settings.js:282 msgid "Remove admin bar" msgstr "" #. translators: %s - The capability in a code tag -#: assets/js/construct-wp-settings.js:282 +#: assets/js/construct-wp-settings.js:284 msgid "Removes the admin bar from the frontend if the user doesn't have the %s capability" msgstr "" -#: assets/js/construct-wp-settings.js:291 +#: assets/js/construct-wp-settings.js:293 msgid "Restrict admin access" msgstr "" #. translators: %s - The capability in a code tag -#: assets/js/construct-wp-settings.js:293 +#: assets/js/construct-wp-settings.js:295 msgid "Redirects users to the frontend if they try to access the admin area without the %s capability" msgstr "" -#: assets/js/construct-wp-settings.js:302 +#: assets/js/construct-wp-settings.js:304 msgid "Enable controllers" msgstr "" -#: assets/js/construct-wp-settings.js:303 +#: assets/js/construct-wp-settings.js:305 msgid "Enables controllers on the frontend based on the current template file" msgstr "" -#: assets/js/construct-wp-settings.js:312 +#: assets/js/construct-wp-settings.js:314 msgid "Auto-enqueue theme styles" msgstr "" #. translators: %s - An example theme style path -#: assets/js/construct-wp-settings.js:314 +#: assets/js/construct-wp-settings.js:316 msgid "Automatically enqueues the theme's styles based on the parent and child theme names. e.g. %s" msgstr "" -#: assets/js/construct-wp-settings.js:323 +#: assets/js/construct-wp-settings.js:325 msgid "Auto-enqueue theme scripts" msgstr "" #. translators: %s - An example theme script path -#: assets/js/construct-wp-settings.js:325 +#: assets/js/construct-wp-settings.js:327 msgid "Automatically enqueues the theme's scripts based on the parent and child theme names. e.g. %s" msgstr "" -#: assets/js/construct-wp-settings.js:334 +#: assets/js/construct-wp-settings.js:336 msgid "Auto-enqueue template styles" msgstr "" #. translators: %s - An example template style path -#: assets/js/construct-wp-settings.js:336 +#: assets/js/construct-wp-settings.js:338 msgid "Automatically enqueues a template's styles based on the template name. e.g. %s" msgstr "" -#: assets/js/construct-wp-settings.js:345 +#: assets/js/construct-wp-settings.js:347 msgid "Auto-enqueue template scripts" msgstr "" #. translators: %s - An example template script path -#: assets/js/construct-wp-settings.js:347 +#: assets/js/construct-wp-settings.js:349 msgid "Automatically enqueues a template's scripts based on the template name. e.g. %s" msgstr "" -#: assets/js/construct-wp-settings.js:356 +#: assets/js/construct-wp-settings.js:358 msgid "Auto-include theme classes" msgstr "" #. translators: %s - the models directory -#: assets/js/construct-wp-settings.js:358 +#: assets/js/construct-wp-settings.js:360 msgid "Automatically includes classes within the theme's %s directory" msgstr "" -#: assets/js/construct-wp-settings.js:367 +#: assets/js/construct-wp-settings.js:369 msgid "Auto-run theme classes" msgstr "" -#. translators: %s - the models directory -#: assets/js/construct-wp-settings.js:369 +#. translators: %1$s - the models directory. %2$s - The init method name +#: assets/js/construct-wp-settings.js:371 msgid "Automatically runs classes within the theme's %1$s directory if they have a public %2$s method" msgstr "" -#: assets/js/construct-wp-settings.js:378 +#: assets/js/construct-wp-settings.js:380 +msgid "Auto-load theme textdomain" +msgstr "" + +#. translators: %s - The languages directory +#: assets/js/construct-wp-settings.js:382 +msgid "Automatically loads a theme's textdomain based on the theme name. Language files must be located in %s of the theme's directory" +msgstr "" + +#: assets/js/construct-wp-settings.js:391 msgid "Footer columns" msgstr "" -#: assets/js/construct-wp-settings.js:379 +#: assets/js/construct-wp-settings.js:392 msgid "The number of footer widget areas to create" msgstr "" -#: assets/js/construct-wp-settings.js:433, assets/js/construct-wp-settings.js:608 +#: assets/js/construct-wp-settings.js:448, assets/js/construct-wp-settings.js:623 msgid "Unable to save settings" msgstr "" -#: assets/js/construct-wp-settings.js:426, assets/js/construct-wp-settings.js:601 +#: assets/js/construct-wp-settings.js:441, assets/js/construct-wp-settings.js:616 msgid "Settings saved!" msgstr "" -#: assets/js/construct-wp-settings.js:441, assets/js/construct-wp-settings.js:616 +#: assets/js/construct-wp-settings.js:456, assets/js/construct-wp-settings.js:631 msgid "Save" msgstr "" -#: assets/js/construct-wp-settings.js:522 +#: assets/js/construct-wp-settings.js:537 msgid "Select all" msgstr "" -#: assets/js/construct-wp-settings.js:555, assets/js/construct-wp-settings.js:559, assets/js/construct-wp-settings.js:560, assets/js/construct-wp-settings.js:622 +#: assets/js/construct-wp-settings.js:570, assets/js/construct-wp-settings.js:574, assets/js/construct-wp-settings.js:575, assets/js/construct-wp-settings.js:637 msgid "Optimize" msgstr "" -#: assets/js/construct-wp-settings.js:561 +#: assets/js/construct-wp-settings.js:576 msgid "Whether to optimize the site to remove bloat" msgstr "" -#: assets/js/construct-wp-settings.js:571 +#: assets/js/construct-wp-settings.js:586 msgid "WordPress" msgstr "" -#: assets/js/construct-wp-settings.js:573 +#: assets/js/construct-wp-settings.js:588 msgid "Feeds" msgstr "" -#: assets/js/construct-wp-settings.js:573 +#: assets/js/construct-wp-settings.js:588 msgid "Really Simple Directory link" msgstr "" -#: assets/js/construct-wp-settings.js:573 +#: assets/js/construct-wp-settings.js:588 msgid "Relational attributes" msgstr "" -#: assets/js/construct-wp-settings.js:573 +#: assets/js/construct-wp-settings.js:588 msgid "Relational links" msgstr "" -#: assets/js/construct-wp-settings.js:573 +#: assets/js/construct-wp-settings.js:588 msgid "Version numbers" msgstr "" -#: assets/js/construct-wp-settings.js:573 +#: assets/js/construct-wp-settings.js:588 msgid "JSON API links" msgstr "" -#: assets/js/construct-wp-settings.js:573 +#: assets/js/construct-wp-settings.js:588 msgid "Emoji" msgstr "" -#: assets/js/construct-wp-settings.js:573 +#: assets/js/construct-wp-settings.js:588 msgid "XML-RPC" msgstr "" -#: assets/js/construct-wp-settings.js:573 +#: assets/js/construct-wp-settings.js:588 msgid "jQuery migrate" msgstr "" -#: assets/js/construct-wp-settings.js:573 +#: assets/js/construct-wp-settings.js:588 msgid "Self pingback" msgstr "" -#: assets/js/construct-wp-settings.js:575 +#: assets/js/construct-wp-settings.js:590 msgid "Dashboard meta boxes" msgstr "" -#: assets/js/construct-wp-settings.js:577 +#: assets/js/construct-wp-settings.js:592 msgid "Welcome panel" msgstr "" -#: assets/js/construct-wp-settings.js:577 +#: assets/js/construct-wp-settings.js:592 msgid "Site health" msgstr "" -#: assets/js/construct-wp-settings.js:577 +#: assets/js/construct-wp-settings.js:592 msgid "At a glance" msgstr "" -#: assets/js/construct-wp-settings.js:577 +#: assets/js/construct-wp-settings.js:592 msgid "Activity" msgstr "" -#: assets/js/construct-wp-settings.js:577 +#: assets/js/construct-wp-settings.js:592 msgid "Quick draft" msgstr "" -#: assets/js/construct-wp-settings.js:577 +#: assets/js/construct-wp-settings.js:592 msgid "Events and news" msgstr "" diff --git a/plugins/construct-wp/models/class-construct-wp-settings.php b/plugins/construct-wp/models/class-construct-wp-settings.php index 6547392..62201ad 100644 --- a/plugins/construct-wp/models/class-construct-wp-settings.php +++ b/plugins/construct-wp/models/class-construct-wp-settings.php @@ -89,6 +89,12 @@ private static function register_settings() { 'default' => true, ) ); + register_setting( 'cwp_settings', 'cwp_theme_textdomain', array( + 'type' => 'boolean', + 'show_in_rest' => true, + 'default' => true, + ) ); + register_setting( 'cwp_settings', 'cwp_footer_column_count', array( 'type' => 'number', 'show_in_rest' => true, @@ -96,7 +102,6 @@ private static function register_settings() { ) ); // TODO theme support. - // TODO autoload theme textdomain. register_setting( 'cwp_settings', 'cwp_optimize', array( 'type' => 'boolean', diff --git a/plugins/construct-wp/models/class-construct-wp.php b/plugins/construct-wp/models/class-construct-wp.php index 715eb82..99f0e4c 100644 --- a/plugins/construct-wp/models/class-construct-wp.php +++ b/plugins/construct-wp/models/class-construct-wp.php @@ -255,7 +255,7 @@ public static function disable_script_version( $src ) { } /** - * Loads the translation files for the plugin + * Loads the translation files for the plugin & themes * * @see https://developer.wordpress.org/reference/functions/load_plugin_textdomain/ * @@ -265,7 +265,16 @@ public static function disable_script_version( $src ) { */ public static function load_textdomain() { load_plugin_textdomain( CWP_SLUG, false, dirname( CWP_BASENAME ) . 'languages' ); - // TODO autoload theme textdomain. + + $theme_setting = boolval( get_option( 'cwp_theme_textdomain' ) ); + + if ( $theme_setting ) { + load_theme_textdomain( get_template(), get_template_directory() . '/languages' ); + + if ( get_template() !== get_stylesheet() ) { + load_theme_textdomain( get_stylesheet(), get_stylesheet_directory() . '/languages' ); + } + } } /** diff --git a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx index 17d5d36..eea5b3f 100644 --- a/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx +++ b/plugins/construct-wp/src/gutenberg/pages/settings/tabs/general/index.jsx @@ -34,6 +34,7 @@ class GeneralTab extends Component { templateScripts: true, autoIncludeThemeClasses: true, autoRunThemeClasses: true, + themeTextdomain: true, footerColumnCount: 3, } } @@ -55,6 +56,7 @@ class GeneralTab extends Component { templateScripts: !!response.cwp_template_scripts, autoIncludeThemeClasses: !!response.cwp_auto_include_theme_classes, autoRunThemeClasses: !!response.cwp_auto_run_theme_classes, + themeTextdomain: !!response.cwp_theme_textdomain, footerColumnCount: response.cwp_footer_column_count, } ) } ) @@ -202,7 +204,7 @@ class GeneralTab extends Component { /models', 'init' @@ -216,6 +218,22 @@ class GeneralTab extends Component { disabled={this.state.isAPISaving} /> + /languages' + ) )} + checked={this.state.themeTextdomain} + onChange={() => { + this.setState( { + themeTextdomain: !this.state.themeTextdomain, + } ) + }} + disabled={this.state.isAPISaving} + /> + Date: Thu, 19 Oct 2023 16:39:24 +0100 Subject: [PATCH 26/27] Updated translations --- .../languages/construct-wp-en_GB.po | 72 ++++++---- ...n_GB-4970dbb0a17c20971e00b1bf045439b2.json | 18 +++ .../languages/js/construct-wp-en_GB.mo | Bin 4312 -> 5176 bytes .../languages/js/construct-wp-en_GB.po | 135 +++++++++++------- 4 files changed, 144 insertions(+), 81 deletions(-) diff --git a/plugins/construct-wp/languages/construct-wp-en_GB.po b/plugins/construct-wp/languages/construct-wp-en_GB.po index a6d0dda..6535acf 100644 --- a/plugins/construct-wp/languages/construct-wp-en_GB.po +++ b/plugins/construct-wp/languages/construct-wp-en_GB.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: ConstructWP\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-11 20:03+0000\n" +"POT-Creation-Date: 2023-10-19 15:20+0000\n" "PO-Revision-Date: \n" "Last-Translator: Andrew Palfrey \n" "Language-Team: Andrew Palfrey \n" @@ -14,7 +14,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Basepath: ..\n" -"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" +"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;" +"_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;" +"esc_html__;esc_html_e;esc_html_x:1,2c\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Generator: Poedit 3.4\n" "X-Poedit-SearchPath-0: .\n" @@ -96,56 +98,60 @@ msgstr "Divider" msgid "Text" msgstr "Text" -#: models/class-construct-wp-settings.php:196 +#: models/class-construct-wp-settings.php:212 msgid "ConstructWP Settings" msgstr "ConstructWP Settings" -#: models/class-construct-wp-settings.php:197 +#: models/class-construct-wp-settings.php:213 msgid "ConstructWP" msgstr "ConstructWP" -#: models/class-construct-wp-settings.php:208 +#: models/class-construct-wp-settings.php:224 msgid "ConstructWP Settings - General" msgstr "ConstructWP Settings - General" -#: models/class-construct-wp-settings.php:209 +#: models/class-construct-wp-settings.php:225 msgid "General" msgstr "General" -#: models/class-construct-wp-settings.php:217 +#: models/class-construct-wp-settings.php:233 msgid "ConstructWP Settings - Optimize" msgstr "ConstructWP Settings - Optimise" -#: models/class-construct-wp-settings.php:218 +#: models/class-construct-wp-settings.php:234 msgid "Optimize" msgstr "Optimise" -#: models/class-construct-wp-settings.php:280 +#: models/class-construct-wp-settings.php:296 msgid "Settings" msgstr "Settings" #. translators: %1$s - Opening p tag, %2$s - Closing p tag, %3$s - Opening a tag, %4$s - Closing a tag #: models/class-construct-wp-updater.php:135 -msgid "%1$sAn Unexpected HTTP Error occurred during the API request.%2$s %1$s%3$sTry again%4$s%2$s" -msgstr "%1$sAn Unexpected HTTP Error occurred during the API request.%2$s %1$s%3$sTry again%4$s%2$s" +msgid "" +"%1$sAn Unexpected HTTP Error occurred during the API request.%2$s " +"%1$s%3$sTry again%4$s%2$s" +msgstr "" +"%1$sAn Unexpected HTTP Error occurred during the API request.%2$s " +"%1$s%3$sTry again%4$s%2$s" -#: models/class-construct-wp-utils.php:178 +#: models/class-construct-wp-utils.php:181 msgid "Page navigation" msgstr "Page navigation" -#: models/class-construct-wp-utils.php:197 +#: models/class-construct-wp-utils.php:200 msgid "First" msgstr "First" -#: models/class-construct-wp-utils.php:201 +#: models/class-construct-wp-utils.php:204 msgid "Last" msgstr "Last" -#: models/class-construct-wp-utils.php:217 +#: models/class-construct-wp-utils.php:220 msgid "Previous" msgstr "Previous" -#: models/class-construct-wp-utils.php:221 +#: models/class-construct-wp-utils.php:224 msgid "Next" msgstr "Next" @@ -154,52 +160,56 @@ msgid "No feed available" msgstr "No feed available" #. translators: %d Footer column number -#: models/class-construct-wp.php:307 +#: models/class-construct-wp.php:316 msgid "Footer %d" msgstr "Footer %d" #. translators: %d Footer column number -#: models/class-construct-wp.php:313 +#: models/class-construct-wp.php:322 msgid "Add widgets here to appear in your footer column %d" msgstr "Add widgets here to appear in your footer column %d" -#: models/class-construct-wp.php:474 +#: models/class-construct-wp.php:489 msgid "Logo" msgstr "Logo" -#: models/class-construct-wp.php:475 +#: models/class-construct-wp.php:490 msgid "This should be your regular, colored logo." msgstr "This should be your regular, coloured logo." -#: models/class-construct-wp.php:483, models/class-construct-wp.php:488, -#: models/class-construct-wp.php:517, models/class-construct-wp.php:522 +#: models/class-construct-wp.php:498, models/class-construct-wp.php:503, +#: models/class-construct-wp.php:532, models/class-construct-wp.php:537 msgid "Select logo" msgstr "Select logo" -#: models/class-construct-wp.php:484, models/class-construct-wp.php:518 +#: models/class-construct-wp.php:499, models/class-construct-wp.php:533 msgid "Change logo" msgstr "Change logo" -#: models/class-construct-wp.php:485, models/class-construct-wp.php:519 +#: models/class-construct-wp.php:500, models/class-construct-wp.php:534 msgid "Remove" msgstr "Remove" -#: models/class-construct-wp.php:486, models/class-construct-wp.php:520 +#: models/class-construct-wp.php:501, models/class-construct-wp.php:535 msgid "Default" msgstr "Default" -#: models/class-construct-wp.php:487, models/class-construct-wp.php:521 +#: models/class-construct-wp.php:502, models/class-construct-wp.php:536 msgid "No logo selected" msgstr "No logo selected" -#: models/class-construct-wp.php:489, models/class-construct-wp.php:523 +#: models/class-construct-wp.php:504, models/class-construct-wp.php:538 msgid "Choose logo" msgstr "Choose logo" -#: models/class-construct-wp.php:508 +#: models/class-construct-wp.php:523 msgid "White Logo" msgstr "White Logo" -#: models/class-construct-wp.php:509 -msgid "This should the white version of your logo for placement on colored backgrounds." -msgstr "This should the white version of your logo for placement on coloured backgrounds." +#: models/class-construct-wp.php:524 +msgid "" +"This should the white version of your logo for placement on colored " +"backgrounds." +msgstr "" +"This should the white version of your logo for placement on coloured " +"backgrounds." diff --git a/plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json b/plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json index 47ce4b2..0f4d284 100644 --- a/plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json +++ b/plugins/construct-wp/languages/js/construct-wp-en_GB-4970dbb0a17c20971e00b1bf045439b2.json @@ -58,6 +58,24 @@ "Automatically enqueues a template's scripts based on the template name. e.g. %s": [ "Automatically enqueues a template's scripts based on the template name. e.g. %s" ], + "Auto-include theme classes": [ + "Auto-include theme styles" + ], + "Automatically includes classes within the theme's %s directory": [ + "Automatically includes classes within the theme's %s directory" + ], + "Auto-run theme classes": [ + "Auto-include theme styles" + ], + "Automatically runs classes within the theme's %1$s directory if they have a public %2$s method": [ + "Automatically runs classes within the theme's %1$s directory if they have a public %2$s method" + ], + "Auto-load theme textdomain": [ + "Auto-load theme textdomain" + ], + "Automatically loads a theme's textdomain based on the theme name. Language files must be located in %s of the theme's directory": [ + "Automatically loads a theme's textdomain based on the theme name. Language files must be located in %s of the theme's directory" + ], "Footer columns": [ "Footer columns" ], diff --git a/plugins/construct-wp/languages/js/construct-wp-en_GB.mo b/plugins/construct-wp/languages/js/construct-wp-en_GB.mo index f17f101a3a175efaa430cbef9baf75f5fd4756b0..fb7314615e4999e53a1e1174ff40579fc1afaa49 100644 GIT binary patch literal 5176 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 diff --git a/plugins/construct-wp/languages/js/construct-wp-en_GB.po b/plugins/construct-wp/languages/js/construct-wp-en_GB.po index 7a49fc4..ace2eaf 100644 --- a/plugins/construct-wp/languages/js/construct-wp-en_GB.po +++ b/plugins/construct-wp/languages/js/construct-wp-en_GB.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: ConstructWP\n" -"POT-Creation-Date: 2023-10-12 11:20+0000\n" +"POT-Creation-Date: 2023-10-19 15:20+0000\n" "PO-Revision-Date: \n" "Last-Translator: Andrew Palfrey \n" "Language-Team: Andrew Palfrey \n" @@ -42,18 +42,18 @@ msgstr "" msgid "ConstructWP" msgstr "ConstructWP" -#: assets/js/construct-wp-settings.js:271, -#: assets/js/construct-wp-settings.js:275, -#: assets/js/construct-wp-settings.js:417 +#: assets/js/construct-wp-settings.js:277, +#: assets/js/construct-wp-settings.js:281, +#: assets/js/construct-wp-settings.js:462 msgid "General" msgstr "General" -#: assets/js/construct-wp-settings.js:276 +#: assets/js/construct-wp-settings.js:282 msgid "Remove admin bar" msgstr "Remove admin bar" #. translators: %s - The capability in a code tag -#: assets/js/construct-wp-settings.js:278 +#: assets/js/construct-wp-settings.js:284 msgid "" "Removes the admin bar from the frontend if the user doesn't have the %s " "capability" @@ -61,12 +61,12 @@ msgstr "" "Removes the admin bar from the frontend if the user doesn't have the %s " "capability" -#: assets/js/construct-wp-settings.js:287 +#: assets/js/construct-wp-settings.js:293 msgid "Restrict admin access" msgstr "Restrict admin access" #. translators: %s - The capability in a code tag -#: assets/js/construct-wp-settings.js:289 +#: assets/js/construct-wp-settings.js:295 msgid "" "Redirects users to the frontend if they try to access the admin area without " "the %s capability" @@ -74,20 +74,20 @@ msgstr "" "Redirects users to the frontend if they try to access the admin area without " "the %s capability" -#: assets/js/construct-wp-settings.js:298 +#: assets/js/construct-wp-settings.js:304 msgid "Enable controllers" msgstr "Enable controllers" -#: assets/js/construct-wp-settings.js:299 +#: assets/js/construct-wp-settings.js:305 msgid "Enables controllers on the frontend based on the current template file" msgstr "Enables controllers on the frontend based on the current template file" -#: assets/js/construct-wp-settings.js:308 +#: assets/js/construct-wp-settings.js:314 msgid "Auto-enqueue theme styles" msgstr "Auto-enqueue theme styles" #. translators: %s - An example theme style path -#: assets/js/construct-wp-settings.js:310 +#: assets/js/construct-wp-settings.js:316 msgid "" "Automatically enqueues the theme's styles based on the parent and child " "theme names. e.g. %s" @@ -95,12 +95,12 @@ msgstr "" "Automatically enqueues the theme's styles based on the parent and child " "theme names. e.g. %s" -#: assets/js/construct-wp-settings.js:319 +#: assets/js/construct-wp-settings.js:325 msgid "Auto-enqueue theme scripts" msgstr "Auto-enqueue theme scripts" #. translators: %s - An example theme script path -#: assets/js/construct-wp-settings.js:321 +#: assets/js/construct-wp-settings.js:327 msgid "" "Automatically enqueues the theme's scripts based on the parent and child " "theme names. e.g. %s" @@ -108,12 +108,12 @@ msgstr "" "Automatically enqueues the theme's scripts based on the parent and child " "theme names. e.g. %s" -#: assets/js/construct-wp-settings.js:330 +#: assets/js/construct-wp-settings.js:336 msgid "Auto-enqueue template styles" msgstr "Auto-enqueue template styles" #. translators: %s - An example template style path -#: assets/js/construct-wp-settings.js:332 +#: assets/js/construct-wp-settings.js:338 msgid "" "Automatically enqueues a template's styles based on the template name. e.g. " "%s" @@ -121,12 +121,12 @@ msgstr "" "Automatically enqueues a template's styles based on the template name. e.g. " "%s" -#: assets/js/construct-wp-settings.js:341 +#: assets/js/construct-wp-settings.js:347 msgid "Auto-enqueue template scripts" msgstr "Auto-enqueue template scripts" #. translators: %s - An example template script path -#: assets/js/construct-wp-settings.js:343 +#: assets/js/construct-wp-settings.js:349 msgid "" "Automatically enqueues a template's scripts based on the template name. e.g. " "%s" @@ -134,112 +134,147 @@ msgstr "" "Automatically enqueues a template's scripts based on the template name. e.g. " "%s" -#: assets/js/construct-wp-settings.js:352 +#: assets/js/construct-wp-settings.js:358 +msgid "Auto-include theme classes" +msgstr "Auto-include theme styles" + +#. translators: %s - the models directory +#: assets/js/construct-wp-settings.js:360 +msgid "Automatically includes classes within the theme's %s directory" +msgstr "Automatically includes classes within the theme's %s directory" + +#: assets/js/construct-wp-settings.js:369 +msgid "Auto-run theme classes" +msgstr "Auto-include theme styles" + +#. translators: %1$s - the models directory. %2$s - The init method name +#: assets/js/construct-wp-settings.js:371 +msgid "" +"Automatically runs classes within the theme's %1$s directory if they have a " +"public %2$s method" +msgstr "" +"Automatically runs classes within the theme's %1$s directory if they have a " +"public %2$s method" + +#: assets/js/construct-wp-settings.js:380 +msgid "Auto-load theme textdomain" +msgstr "Auto-load theme textdomain" + +#. translators: %s - The languages directory +#: assets/js/construct-wp-settings.js:382 +msgid "" +"Automatically loads a theme's textdomain based on the theme name. Language " +"files must be located in %s of the theme's directory" +msgstr "" +"Automatically loads a theme's textdomain based on the theme name. Language " +"files must be located in %s of the theme's directory" + +#: assets/js/construct-wp-settings.js:391 msgid "Footer columns" msgstr "Footer columns" -#: assets/js/construct-wp-settings.js:353 +#: assets/js/construct-wp-settings.js:392 msgid "The number of footer widget areas to create" msgstr "The number of footer widget areas to create" -#: assets/js/construct-wp-settings.js:403, -#: assets/js/construct-wp-settings.js:578 +#: assets/js/construct-wp-settings.js:448, +#: assets/js/construct-wp-settings.js:623 msgid "Unable to save settings" msgstr "Unable to save settings" -#: assets/js/construct-wp-settings.js:396, -#: assets/js/construct-wp-settings.js:571 +#: assets/js/construct-wp-settings.js:441, +#: assets/js/construct-wp-settings.js:616 msgid "Settings saved!" msgstr "Settings saved!" -#: assets/js/construct-wp-settings.js:411, -#: assets/js/construct-wp-settings.js:586 +#: assets/js/construct-wp-settings.js:456, +#: assets/js/construct-wp-settings.js:631 msgid "Save" msgstr "Save" -#: assets/js/construct-wp-settings.js:492 +#: assets/js/construct-wp-settings.js:537 msgid "Select all" msgstr "Select all" -#: assets/js/construct-wp-settings.js:525, -#: assets/js/construct-wp-settings.js:529, -#: assets/js/construct-wp-settings.js:530, -#: assets/js/construct-wp-settings.js:592 +#: assets/js/construct-wp-settings.js:570, +#: assets/js/construct-wp-settings.js:574, +#: assets/js/construct-wp-settings.js:575, +#: assets/js/construct-wp-settings.js:637 msgid "Optimize" msgstr "Optimise" -#: assets/js/construct-wp-settings.js:531 +#: assets/js/construct-wp-settings.js:576 msgid "Whether to optimize the site to remove bloat" msgstr "Whether to optimise the site to remove bloat" -#: assets/js/construct-wp-settings.js:541 +#: assets/js/construct-wp-settings.js:586 msgid "WordPress" msgstr "WordPress" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:588 msgid "Feeds" msgstr "Feeds" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:588 msgid "Really Simple Directory link" msgstr "Really Simple Directory link" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:588 msgid "Relational attributes" msgstr "Relational attributes" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:588 msgid "Relational links" msgstr "Relational links" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:588 msgid "Version numbers" msgstr "Version numbers" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:588 msgid "JSON API links" msgstr "JSON API links" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:588 msgid "Emoji" msgstr "Emoji" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:588 msgid "XML-RPC" msgstr "XML-RPC" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:588 msgid "jQuery migrate" msgstr "jQuery migrate" -#: assets/js/construct-wp-settings.js:543 +#: assets/js/construct-wp-settings.js:588 msgid "Self pingback" msgstr "Self pingback" -#: assets/js/construct-wp-settings.js:545 +#: assets/js/construct-wp-settings.js:590 msgid "Dashboard meta boxes" msgstr "Dashboard meta boxes" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:592 msgid "Welcome panel" msgstr "Welcome panel" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:592 msgid "Site health" msgstr "Site health" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:592 msgid "At a glance" msgstr "At a glance" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:592 msgid "Activity" msgstr "Activity" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:592 msgid "Quick draft" msgstr "Quick draft" -#: assets/js/construct-wp-settings.js:547 +#: assets/js/construct-wp-settings.js:592 msgid "Events and news" msgstr "Events and news" From 727a297d4cd594138bef2254b44c9aa4786c2443 Mon Sep 17 00:00:00 2001 From: Andrew Palfrey Date: Thu, 19 Oct 2023 17:14:31 +0100 Subject: [PATCH 27/27] Version bump to 0.2.0 --- .gulpconfig.js | 2 +- .vscode/bookmarks.json | 2 +- README.md | 34 +++++++++++++++++++++++ plugins/construct-wp/README.txt | 40 +++++++++++++++++++++++++-- plugins/construct-wp/construct-wp.php | 4 +-- 5 files changed, 75 insertions(+), 7 deletions(-) diff --git a/.gulpconfig.js b/.gulpconfig.js index 2e21959..9c0ec22 100644 --- a/.gulpconfig.js +++ b/.gulpconfig.js @@ -5,7 +5,7 @@ const areas = { path: './plugins/construct-wp', name: 'construct-wp', title: 'ConstructWP', - version: '0.1.1', + version: '0.2.0', }, } diff --git a/.vscode/bookmarks.json b/.vscode/bookmarks.json index cd616ef..e717fab 100644 --- a/.vscode/bookmarks.json +++ b/.vscode/bookmarks.json @@ -4,7 +4,7 @@ "path": ".gulpconfig.js", "bookmarks": [ { - "line": 6, + "line": 7, "column": 18, "label": "Version number" } diff --git a/README.md b/README.md index b859169..5d3d620 100644 --- a/README.md +++ b/README.md @@ -37,8 +37,42 @@ Yes! Models and controllers can be auto-initiated if the class has a static meth ## Changelog +### 0.2.0 - 2023-10-19 + +#### Added + +* Allowed the assets to be committed +* Custom menu item fields can now be hidden in screen options +* Custom menu item fields can now be set in the customizer +* Implemented setting to enable controllers +* Implemented settings to enable auto-enqueue of scripts & styles +* Implemented setting to control footer column count +* Implemented JS translation functionality +* Implemented settings for auto including & running theme classes +* Implemented theme texdomain autoloading & accompanying setting + +#### Fixed + +* Fixed settings page not loading +* Fixed PHP notice in widgets page caused by gutenberg js +* Active class is now applied to the `a` tag in the navwalker + +#### Changed + +* Moved settings page ad main menu item +* Moved settings pages from using tabs to working with multiple pages +* Improved how custom white logo setting is declared +* Moved both custom logos positions below site title & tagline +* Pagination util can now have a `WP_Query` object passed through for use + +#### Removed + +* `CWP_THEME_SLUG` is no longer needed. Theme names are now retrieved from `get_template()` and `get_stylesheet()` + ### 0.1.1 - 2023-10-10 +#### Fixed + * Fixed `the_logo` method in `CWP_Assets` * Fixed theme models not being loaded correctly * Fixed pagination not working diff --git a/plugins/construct-wp/README.txt b/plugins/construct-wp/README.txt index 827b8e9..831fe49 100644 --- a/plugins/construct-wp/README.txt +++ b/plugins/construct-wp/README.txt @@ -1,10 +1,10 @@ === ConstructWP === Contributors: apalfrey Tags: framework, system -Requires at least: 5.4.0 -Tested up to: 6.3.1 +Requires at least: 5.4 +Tested up to: 6.3 Requires PHP: 7.4 -Stable tag: 0.1.1 +Stable tag: 0.2.0 License: GPL v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -49,8 +49,42 @@ Yes! Models and controllers can be auto-initiated if the class has a static meth == Changelog == += 0.2.0 - 2023-10-19 = + +#### Added + +* Allowed the assets to be committed +* Custom menu item fields can now be hidden in screen options +* Custom menu item fields can now be set in the customizer +* Implemented setting to enable controllers +* Implemented settings to enable auto-enqueue of scripts & styles +* Implemented setting to control footer column count +* Implemented JS translation functionality +* Implemented settings for auto including & running theme classes +* Implemented theme texdomain autoloading & accompanying setting + +#### Fixed + +* Fixed settings page not loading +* Fixed PHP notice in widgets page caused by gutenberg js +* Active class is now applied to the `a` tag in the navwalker + +#### Changed + +* Moved settings page ad main menu item +* Moved settings pages from using tabs to working with multiple pages +* Improved how custom white logo setting is declared +* Moved both custom logos positions below site title & tagline +* Pagination util can now have a `WP_Query` object passed through for use + +#### Removed + +* `CWP_THEME_SLUG` is no longer needed. Theme names are now retrieved from `get_template()` and `get_stylesheet()` + = 0.1.1 - 2023-10-10 = +#### Fixed + * Fixed `the_logo` method in `CWP_Assets` * Fixed theme models not being loaded correctly * Fixed pagination not working diff --git a/plugins/construct-wp/construct-wp.php b/plugins/construct-wp/construct-wp.php index 2b8993a..feacc54 100644 --- a/plugins/construct-wp/construct-wp.php +++ b/plugins/construct-wp/construct-wp.php @@ -3,7 +3,7 @@ * Plugin Name: ConstructWP * Plugin URI: https://github.com/apalfrey/construct-wp * Description: ConstructWP is a framework system to allow for easier development as well as useful tools and addons. - * Version: 0.1.1 + * Version: 0.2.0 * Requires at least: 5.4.0 * Requires PHP: 7.4 * Author: APalfrey @@ -32,7 +32,7 @@ * * Plugin directory url * * Plugin basename */ -define( 'CWP_VERSION', '0.1.1' ); +define( 'CWP_VERSION', '0.2.0' ); define( 'CWP_SLUG', 'construct-wp' ); define( 'CWP_PLUGIN_PATH', plugin_dir_path( __FILE__ ) ); define( 'CWP_PLUGIN_URL', plugin_dir_url( __FILE__ ) );